正则表达式的exec与RegExp.$1

正则表达式的exec、RegExp.$1方法

  1. reg.exec每次匹配完成后,reg.lastIndex被设定为匹配命中的结束位置
  2. reg.exec传入其它语句时,lastIndex不会自动重置为0,需要手动重置
  3. reg.exec匹配结果可以直接从其返回值读取
  4. RegExp.$x保存了最近1次exec或test执行产生的子表达式命中匹配

以双向绑定字符串解析为例:


  const str = '{{var1}}
{{var2}}
' const reg = /\{\{(.*?)\}\}/g const match = str.match(reg) // 得到['{{var1}}', '{{var2}}'] const varRes = match.map(item => { reg.lastIndex = 0 // exec方法每次使用后会将lastIndex值设为匹配后的index,更换字符串需要手动重置 reg.exec(item) // [ '{{var1}}', 'var1', index: 0, input: '{{var1}}', groups: undefined ] return RegExp.$1 // RegExp.$1用于保存最近一次exec或test产生的匹配结果中,括号内的内容 }) console.log(varRes) // ['var1', 'var2']

你可能感兴趣的:(正则表达式的exec与RegExp.$1)