2 qq 32224861 qq_32224861 于 2017.09.06 18:13 提问

javascript正则表示相关的问题

"mon and dad".match(/(mon( and dad)?)/)
求解释输出的结构

2个回答

showbo
showbo   Ds   Rxr 2017.09.06 21:27
已采纳

匹配mon或者mon and dad

匹配出来的数组有3个项,第一项是整个匹配的字符串mon或者mon and dad,第二项是第一个分组(mon( and dad)?)==》mon或者mon and dad,第三项是( and dad)?这个分组,如果没有and dad就是undefined

第一个项和第二个一样的,因为分组1就是整个匹配


console.log("mon and dad".match(/(mon( and dad)?)/))
==》
["mon and dad", "mon and dad", " and dad"]



console.log("mon and x dad".match(/(mon( and dad)?)/))
===>
["mon", "mon", undefined]
qq_32224861
qq_32224861 理解了,谢谢啦
2 个月之前 回复
caozhy
caozhy 还是bobo说得对,我把题意理解错啦
2 个月之前 回复
caozhy
caozhy   Ds   Rxr 2017.09.06 20:57

匹配
mon或者mon and dad,加上问号表示匹配尽量短的。
你的原文是mon and dad,所以匹配到了mon就返回,而不是匹配mon and dad
没有问号是贪婪模式,则匹配mon and dad

Csdn user default icon
上传中...
上传图片
插入图片