RegExp 的 exec 要领

语法:
regexObj.exec(str)

作用是检测 str 中是不是有婚配 regexOjb 的部份,返回值是一个数组。简朴的例子:

var re = /\d/g
var str = 'a11a22a11a22'

re.exec(str) // 第1次实行

// Result:      ["1", index: 1, input: "a112211"]
// 索引0:       婚配的值
// 属性'index': 这个值所在位置

re.exec(str) // 第2次实行 (注重:re 假如没有加 g 标识的话,实行效果和第1次一样,不会向后婚配)

// Result:      ["1", index: 2, input: "a112211"]

假如 re 中有分组,则会把分组放入实行效果的 [1]...[n]

转变一下上例中的 re :

var re = /(a\d)(\d)/g // 两个分组:(a\d)、(\d)
var str = 'a11a22a11a22'

re.exec(str) // 第1次实行

// Result:      ["a11", "a1", "1", index: 0, input: "a11a22a11a22"]
// 索引0:       婚配的值
// 索引1:       婚配第1个分组的值
// 索引2:       婚配第2个分组的值
// 属性'index': 这个值所在位置

re.exec(str) // 第2次实行

// Result:      ["a22", "a2", "2", index: 3, input: "a11a22a11a22"]

应用exec() 会把婚配内容中分组的值离别获得的特征,我们能够很轻易得从一段字符串中获得目的信息。如:

var re2 = /(\d{1,4}) (.*?) (\w{2} \d{4,5}),?/gi
var [_ , nb, addr, zip] = re2.exec("123 Main Street St. Louisville OH 43071")

// nb:   123
// addr: Main Street St. Louisville
// zip:  OH 43071
    原文作者:Pario
    原文地址: https://segmentfault.com/a/1190000009643124
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞