JavaScript之正则匹配字符串的关键词与位置
indexOf/lastIndexOf
缺点:不支持正则。
如果找到,返回关键词的位置;如果找不到,返回-1。
关键词 | 位置 |
---|
否:var i = str.indexOf(“关键词”,fromi) | 匹配从第fromi开始,向后找第一个关键词位置 i |
否:var i = str.lastIndexOf(“关键词”,fromi) | 匹配第从fromi开始,向前找第一个关键词位置 i |
search
其实和indexOf差不多,只是不能指定fromi,默认是从第0个字符开始,向后找第一个关键词位置。
支持正则。
如果找到,返回关键词的位置;如果找不到,返回-1。
关键词 | 位置 |
---|
否:var i = str.search(/正则/) | 匹配从0开始,向后找第一个关键词位置 i |
match
强调: 只要一个方法可能返回null,就都要先验证不是null,再使用。
强调: 所有正则表达式默认只匹配一个关键词。除非在第二个/后加g,表示全部;加i表示忽略大小写。
关键词 | 位置 |
---|
是 kwords[0] :var kwords = str.match(/正则/) | 不加g的情况下才能匹配关键词位置 kwords.index |
是 kwords数组 :var kwords = str.match(/正则/g) | 加g的情况下不能匹配关键词位置 |
exec
1 2 3 4 5 6 7 8 9
| var reg = /正则/g;
var arr=[]; while((arr=reg.exec(str))!=null){ console.log(arr); console.log("在位置"+arr.index+"发现关键词"+arr[0]+"下次从"+reg.lastIndex+"开始找") }
|
关键词 | 位置 |
---|
是 arr[0] :arr=reg.exec(str) | 关键词位置 arr.index |
前端工程师,轻微代码洁癖,于妥协与坚持中追求完美。