使用此代码摆脱摆脱MIME类型的rawdata.but我不明白它是如何工作有人可以帮助解释JavaScript中的这个正则表达式吗?
content.replace(/^[^,]*,/ , '')
似乎从Java完全不同....任何帮助将不胜感激。
使用此代码摆脱摆脱MIME类型的rawdata.but我不明白它是如何工作有人可以帮助解释JavaScript中的这个正则表达式吗?
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 ('').
这只是得到第一个出现,因为它的开始标记^它必须在字符串的开始。
正则表达式是两个正斜杠之间的文本,第一个克拉(^)表示字符串开头,括号表示字符类,括号内的克拉表示除逗号之外的任何字符,然后右括号后的星号表示匹配零个或多个由字符类定义的字符(它再次是除逗号之外的任何字符),然后最后一个逗号表示在所有这些之后匹配逗号。然后在替换函数中使用它,以便在您的情况下将匹配结果替换为第二个参数:空字符串。
基本上它与'content'变量中的第一个逗号匹配并包含第一个逗号,然后用空字符串替换它。
您需要知道的第一件事是JavaScript中有正则表达式文字,由斜线对构成。所以像"..."
是一个字符串,/.../
是一个正则表达式。这实际上是您的代码与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
感谢您的回答蒂姆。它确实有帮助 –
是它必须放在之间的两个正斜杠的表达? –
对于正则表达式是的。JavaScript替换函数也接受纯字符串,所以正斜杠信号表明您想使用正则表达式执行匹配。如果这是有道理的.. – dano