新手问一个正则表达式的问题?

x='"a","b"';

y=x.replace(/([^"]*)/g,"'$1'");

为何返回值会是:''"'a'''"','''"'b'''"'' ?

/([^"]*)/g捕捉的不应该只是a和b吗,为什么会返回这么多引号?


谢谢回答


呼如林
浏览 446回答 2
2回答

森林海

正则的问题 * 匹配任意次,越多越好,也就是说,空白也匹配,匹配 0 次你实际上把上面匹配到的 7 个字符串都用它的捕获组去替换了,举个例子首先,字符串开头的空白你匹配到了,$1是空白,然后你把开头的空白替换成了'$1',实际上就是'',所以你的字符串开头多了''后面的类似,,,,你慢慢分析吧
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript