var code=" for (var i = 0; i < list; i ++) { "
code.split(/[^\$\w\d]+/)
// (9) ["", "for", "var", "i", "0", "i", "list", "i", ""]
代码如上所示,请问其中的正则该怎么理解,为什么最后能切割出这样的数组?
var code=" for (var i = 0; i < list; i ++) { "
code.split(/[^\$\w\d]+/)
// (9) ["", "for", "var", "i", "0", "i", "list", "i", ""]
代码如上所示,请问其中的正则该怎么理解,为什么最后能切割出这样的数组?
\w
: 代表A-z 或 a-z 或 _ 或 0-9的其中一个\$
: 代表符号$
\d
: 代表0-9
而前面的^
可能会让人比较混淆,因为很多时候它是代表以..开头, 但是在这里, 它的意思是非
, 也就是不是的意思,而后面的+
就是代表,前面的表达式匹配的字符,至少有1个或者有多个
所以综上所述: 匹配 不是A-Z或者a-z或者0-9或者_或者$
且个数大于等于1的字符, split
应该不用说了,就是按照前面的正则来切割
边城已经解释了这个正则的作用。
对这个表达式本身做点补充。
方括号内$不必脱出,所以直接写$是可以的。
w已经匹配数字,所以d没有必要
所以可以简化为/[^$\w]+/
如果不考虑$的话,可以直接写作 /\W+/
10 回答11.1k 阅读
15 回答8.4k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
8 回答6.2k 阅读
2 回答2.6k 阅读✓ 已解决
把连续的,不是
$
号,也不是数字和字母的其它字符,作为分隔符