var a="kk:ws";
alert(a.match(/(^|:|,)\w+/));
var a="kk:ws";
alert(a.match(/(:|,)\w+/));
请问这两端代码有什么区别,输出结果完全一样啊。
(^|:|,)是我在JSON2.JS中看到的一段正则,不明白为什么这样写啊?

解决方案 »

  1.   

    有区别的好不好一个匹配 kk
    一个匹配:ws
      

  2.   

    lz你想复杂了其实第一个是以文本开始(^符号的本身意思你明白的)、:、,开头的
    第二个是以:,开头的如果你给正则加上g(全局)就能理解了
    alert(a.match(/(^|:|,)\w+/g));
      

  3.   

    (a|b) 你能理解吧
    在这个子模式里^和a一样,充当一个原子这也是为什么这段js不用[^:,]的原因
    因为这个时候^代表非的意思~~