正则表达式相当于一个模子,去检测某个内容是不是有符合这个模子的。
例如:
/123/.exec(‘234’) // 内容里没有能匹配123的
/2/.exec(‘234’) // 内容里有可以匹配到2的
JavaScript正则中的子表达式要用括号括起来。
说明
exec() 方法的功能非常强大,它是一个通用的方法,而且使用起来也比 test() 方法以及支持正则表达式的 String 对象的方法更为复杂。
如果 exec() 找到了匹配的文本,则返回一个结果数组。否则,返回 null。此数组的第 0 个元素是与正则表达式匹配的文本,第 1 个元素是与 RegExpObject 的第 1 个子表达式相匹配的文本(如果有的话),第 2 个元素是与 RegExpObject 的第 2 个子表达式相匹配的文本(如果有的话),以此类推。 除了数组元素和 length 属性之外,exec() 方法还返回两个属性。index 属性声明的是匹配文本的第一个字符的位置。input 属性则存放的是被检索的字符串 string。我们可以看得出,在调用非全局的 RegExp 对象的 exec() 方法时,返回的数组与调用方法 String.match() 返回的数组是相同的。
例如:
/\[[a-z]+ ([a-zA-Z]+)\]/.exec(Object.prototype.toString.call([])) || []
结果:
[“[object Array]”, “Array”, index: 0, input: “[object Array]”, groups: undefined]
再例如:
/\[([a-z]+) ([a-zA-Z]+)\]/.exec(Object.prototype.toString.call([])) || []
结果:
[“[object Array]”, “object”, “Array”, index: 0, input: “[object Array]”, groups: undefined]