match()方法支持正则表达式的String对象的方法。
上篇我说了search()方法,也支持正则表达式的String对象,那么match()方法跟search()方法有什么不同呢?我们来看看。
var str="Hello world!"
console.log(str.match("world"))
console.log(str.match("World"))
console.log(str.match("worlld"))
console.log(str.match("world!"))
输出:
world
null
null
world!
看结果,因为1和4与str中字符一一对应所以都返回了检索的字符串,2因为有大写,3因为多了一个l,所以返回null.
match()不像search()方法返回需要检索的字符串的首次位置,而是返回需要检索的字符串如果在被检索的字符串中正确出现的话。
注意不同:match()返回指定字符串;search()返回指定字符串首次出现的位置
好,我们用这个方法来一个需求:检索字符串中的所有数字?
贴代码:
var str="1 plus 2 equal 3"
console.log(str.match(/\d+/g))
输出:1,2,3
\d是元字符用于查找数字字符,g是正则对象属性,全局匹配的意思
/\d+/g 的意思是,在str字符串中执行全局匹配查找所有的数字字符。match()方法之后输出查到的内容。
如果有一段数据,我们需要提取其中的某些我们需要的字符串内容返回给我们进行进一步使用,那么我们可以用match方法,根据规律写指定字符串的正则,这样就可以返回输出我们需要的内容了。