一、字符串方法–match的用法
1、stringObject.match(str):
用于检索字符串中指定的值,返回一个存放匹配结果的数组,若没有检索到,返回null
var str = "hello world!";
str.match('llo');//['llo']
str.match("ksk");//"null"
2、stringObject.match(regexp):
将检索字符串 stringObject,以找到一个或多个与 regexp 匹配的文本,若没有匹配到,则返回null。这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。
(1)如果没有全局匹配标志,则返回如下:
1、索引:匹配到的第一个字符串
2、index属性:匹配到的字符串的位置
3、input属性:原字符串对象
var str = "Code123Player34Code456 http://www.365mini.com";
str.match(/\d{2}/);
(2)如果带有全局匹配的标志g
,则返回如下:
- 包含全部索引值的数组,该数组不再包含index和input属性
var str = "Code123Player34Code456 http://www.365mini.com";
str.match(/\d{2}/g);
二、正则的方法regExp.exec(str)
的用法
1、若没有匹配到,则返回null
2、如果 exec() 找到了匹配的文本,则返回一个结果数组。
- 此数组的第 0 个元素是与整个正则表达式相匹配的文本
- 第 1 个元素是与 RegExpObject 的第 1 个子表达式(也就是圆括号里的正则表达式)匹配的文本
- 第 2 个元素是与 RegExpObject 的第 2 个子表达式相匹配的文本,以此类推。
- 除了数组元素和 length 属性之外,exec() 方法还返回两个属性。index 属性声明的是匹配文本的第一个字符的位置。input 属性则存放的是被检索的字符串 string
- 而且在调用非全局的 RegExp 对象的 exec() 方法时,返回的数组与调用方法 String.match() 返回的数组是相同的。
3、如果是设置了全局属性的RegExp对象调用exec()方法
- 如果正则对象带有
g
全局属性,则可以多次调用exec方法,下一次检索的位置是从上一次匹配成功(也就是正则对象的lastIndex属性值所指示)的位置的下一个位置开始。- 当 exec() 再也找不到匹配的文本时,它将返回 null,并把 lastIndex 属性重置为 0。