这里介绍几种模式匹配方法
1、match()
match 方法使用正则表达式模式对字符串进行查找,查找的结果按照数组返回。
String.match(规则或者正则表达式或者字符串文字)
String 这里表示的是需要查找的String 对象或者字符串文字。
括号的里面的内容,包含正则表达式模式和可用标志的正则表达式对象变量或者字符串文字。
这两项都是必填项。
有关返回值
如果 match()没有找到匹配内容,就会返回null
如果有匹配到内容,那么就会返回一个数组,更新全局RegExp 对象的属性,以反映匹配结果。
返回数组的值:
match()返回的数组由于两个值,input index
input 属性包含整个被查找的字符串。注意这里是字符串。
index 属性包含整个被查找字符串中符合撇皮的子字符串的位置。
要是没有全局标志 g (与上一篇文章的exec方法相似),数组的0元素包含整个匹配。而第1个到最后一个元素包含了匹配中曾出现的任意一个子匹配。
相当于没有设置于全局标志的exec()方法,要是有全局标志,那么从0开始到最后的n 包含所有匹配。
使用方式举例
var a ='abcdefg'
var b = /abc/i
//i表示忽略大小写
var c
c=a.match(b)
经常用这个判断字符串。
返回的是匹配的内容
2、search()
用于返回与正则表达式查找内容相匹配的第一个子字符串的位置,
a.search(b)
a 表示的是String对象或者字符串文字,就是你要在那里面找 。
b 表示的是规则就是想要匹配的正则表达式 ,也表示为正则表达式模式和可用标志(类似于g i 之类的)的正则表达式对象。
search方法指明是否存在相应的匹配,如果找到一个匹配,那就返回一个整数的值,指明这个匹配距离字符串开始的偏移位置,如果没有找到匹配就返回 -1
常利用这个没有匹配返回-1的方式,进行判断。
返回的是匹配的位置
3、replace()方法
replace()方法使用表达式模式对字符串进行搜索,并将搜索的内容用指定的字符串替换,最后返回一个字符串对象,包含了替换后的内容。
replace(a,b)
a:是搜索是要使用的表达式对象,如果是字符串,不按正则表达式的方式进行模糊搜索,而是进行精确搜索。
b:参数是用来替换搜索内容的字符串。可以使用一些特殊字符组合匹配变量,其中$&是整个表达式模式在被搜索字符串中所匹配的字符串,$是表达式模式在被搜索字符串中所匹配的字符串左边的所有内容。$' 表示右边的内容。$$ 表示普通意义的$字符 (这里可以与前面文章里面的RegExp静态属性联系起来)
执行这个方法后,将更新对象中的有关静态属性,以反映匹配情况。
4、split()方法
split()方法可返回按照某种分割标识符将一个字符串拆分为若干个子字符串时,所产生的的子字符串数组。
split([a[,b]])
这个格式比较特别
这里的a是分割标识符的参数,可以是一个正则表达式或者多个字符,不作为返回的数组元素的一部分
b是用于限制这个返回元素的个数。不是必填。
可以用来拆分字符串的。