var pattern = /(?:)/
从我的测试来看,它似乎与一切相符。这是定义的行为吗?
答案 0 :(得分:14)
这并没有直接回答这个问题,但这里有关于空正则表达式的规范:
来自15.5.4.14 String.prototype.split (separator, limit)
separator的值可以是空String,空正则表达式,或者可以匹配空String的正则表达式。
来自7.8.5 Regular Expression Literals
注意正则表达式文字可能不为空;字符//开始单行注释,而不是表示空的正则表达式文字。要指定空的正则表达式,请使用:
/(?:)/
。
所以假设它是.split()
中分隔符的可接受值,我猜它是定义的行为,作为分割每个字符的一种方式。
"fjeij;als#%^&é.\n isoij\t;oi`1=+-]\r".split(/(?:)/);
["f", "j", "e", "i", "j", ";", "a", "l", "s", "#", "%", "^", "&", "é", ".", "
", " ", "i", "s", "o", "i", "j", " ", ";", "o", "i", "`", "1", "=", "+", "-", "]", "
"]
答案 1 :(得分:7)
/(?:)/
匹配“nothing”,匹配所有内容。一切都没有。嘿嘿。
是的,我希望如此。