一个最常用的场景 截取两个字符串中间的字符串 var str = "iid0000ffr"; 你会发现逗号后面是你要的东西 /S*表示多个字符串 为什么想要的东西在逗号后,也就是数组第二个. 是因为match的返回数组,第一个表示匹配的字符串,这里是包括id ff的,结果是id0000ff 第二个是子正则表达式,什么是子正则表达式,()里面的内容就是子正则表达式,就是指\s*,这才是我们要的东西
我们还可以写复杂点, var str2='erwab999999d789eeff'; var substr = str2.match(/ab\S*d(\S*)ff/); 这个表示以ab开始d结尾的字符串 同ff字符串之间的字符串,输出:["ab999999d789eeff", "789ee"]
其实,在高级语言里,我们会用一个叫数量词的概念 就是 (?=abc)这表示以abc结尾的前面的字符串,但不包括abc var str = "iid0000ffr"; 但你不能直接写 var substr = str.match(/(?=ff)/); 因为它只管逻辑,但不会输出. 这种东西叫正向肯定预查,就是查***前面的字符串, 很多高级语言里面还有叫"反向肯定预查",就是叫***后面的字符串,一般是这样写 ?<=abc 不过可怜js不支持 |
|