此代码用于从 rawdata 中删除 mime 类型。但我无法理解它是如何工作的
content.replace(/^[^,]*,/ , '')
它似乎与java完全不同......任何帮助将不胜感激。
此代码用于从 rawdata 中删除 mime 类型。但我无法理解它是如何工作的
content.replace(/^[^,]*,/ , '')
它似乎与java完全不同......任何帮助将不胜感激。
您的 mime 类型可能以逗号分隔,,
并且位于原始数据的开头。这个正则表达式说take everything from the beginning (^) that is NOT a comma ([^,]*) (the star makes it as many characters until there is a comma) and take the comma itself (,). Then replace it by nothing ('').
这个只有第一次出现,因为它由开头标记 ^ ,它必须在字符串的开头。
您需要知道的第一件事是 JavaScript 中有正则表达式文字,由成对的斜线构成。所以 like"..."
是一个字符串,/.../
是一个正则表达式。这实际上是您的代码与 Java 正则表达式相比的唯一区别。
然后,[abc]
在一个正则表达式中被称为一个字符类,意思是“一个字符a
,b
或c
”。相反,[^abc]
是一个否定字符类,意思是“一个字符除了 a
,b
或c
”。
所以你的样本意味着:
/ # Start of regex literal
^ # Start the match at the start of the string
[^,]* # Match any number of characters except commas
, # Match a comma
/ # End of regex literal
正则表达式是两个正斜杠之间的文本,第一个克拉(^)表示在字符串的开头,括号表示一个字符类,括号内的克拉表示除逗号之外的任何字符,然后是结束后的星号括号表示匹配字符类定义的零个或多个字符(同样是逗号以外的任何字符),最后最后一个逗号表示匹配逗号。然后它在替换函数中使用,因此匹配结果将替换为第二个参数,在您的情况下:一个空字符串。
基本上它匹配“内容”变量中的第一个字符,包括第一个逗号,然后用空字符串替换它。