正则表达式


1.test 返回匹配结果True / False

i="bbbbat"
p=/[b|c]at/
p.test(i)

2.exec ( 正则表达式.(字符串) )

>>>p.exec(i)
["bat", index: 6, input: "bbbbat"]
>>>p.exec(i)[0]         //匹配结果
bat
>>>p.exec(i)['index']    //匹配到的开头位置
6
>>>p.exec(i)['input']     //输入字符
bbbbat

可以写个无限循环不断抽取里面的匹配到的元素。


image.png

3.match ( 字符串.(正则表达式) )
当出现多个潜在的匹配对象时,需要使用match而不是exec

p=/[b|c]at/g             //注意在正则表达式后加上g才可以支持多匹配 !
i.match(p)               //返回匹配得到的变成数组返回。

但是想获取匹配成功的位置还是要用exec好


image.png

特殊参数:

 g:表示全局(global)模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止;
 i:表示不区分大小写(case-insensitive)模式,即在确定匹配项时忽略模式与字符串的大小写;
 m:表示多行(multiline)模式,即在到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项。


想替换掉字符串中的所有/部分字符怎么办?
var text='cat,bat,fat'
var part=text.replace("at","ond")
var full=text.replace(/at/g,"ond")
图片.png
var text='cat,bat,fat'
result=text.replace(/.at/,"word ($1)")
// 不要打 " 号,$1指匹配到的第一个字符。