ES9 / Lookbehind 前瞻零宽断言、后顾零宽断言解析
在 JavaScript ES9 中,新增了一种正则表达式的语法——前瞻零宽断言和后顾零宽断言。这两种语法可以让正则表达式更加强大灵活,同时也为前端开发带来了更多的便利。本文将深入探讨前瞻零宽断言和后顾零宽断言的相关概念、用法和示例代码。
前瞻零宽断言
前瞻零宽断言是指在一个字符串的前面匹配一个模式,但是不包括这个字符串本身。在正则表达式中,前瞻零宽断言用“(?=”来表示,其中“?”可以省略,表示匹配任意字符后面的位置,其中“=”表示匹配后面跟着指定的表达式。
示例代码:
const str = 'apple grape orange banana'; const regExp = /(?=\b[a-d])/g; console.log(str.match(regExp)); // ["a", "d", "b"]
以上代码中,使用前瞻零宽断言匹配了字符串中第一个出现的符合条件的字母“a”,之后又匹配了“d”,“b”等符合条件的字母。
后顾零宽断言
后顾零宽断言是指在一个字符串的后面匹配一个模式,但是不包括这个字符串本身。在正则表达式中,后顾零宽断言用“(?<=)”来表示,其中“<=”表示匹配前面跟着指定的表达式。
示例代码:
const str = 'apple grape orange'; const regExp = /(?<=app)\w+/g; console.log(str.match(regExp)); // ["le"]
以上代码中,使用后顾零宽断言匹配了字符串中第一个出现的符合条件的单词“le”,其中“app”就是指定的表达式。
总结
前瞻零宽断言和后顾零宽断言是正则表达式中的两个强大的语法,可以用来匹配字符串中前面或后面的模式,而且在匹配后返回的结果中不包含匹配模式本身。这种语法可以帮助前端开发人员更快更准确地完成一些字符串操作,例如数据过滤、替换等等。但是需要注意的是,由于这种语法的使用稍微有些复杂,建议前端开发人员在使用前要先了解其相关语法和用法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a0ee1748841e9894d32d57