您当前的位置: 首页 >  正则表达式

liaowenxiong

暂无认证

  • 3浏览

    0关注

    1171博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

ES6 对正则表达式的扩展

liaowenxiong 发布时间:2021-07-04 22:11:22 ,浏览量:3

文章目录
  • 修饰符 y
  • 修饰符 u
ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

修饰符 y

g 类似,也是全局匹配,并且下一次匹配都是从上一次匹配成功结束位置开始(即上次匹配成功的字符串最后一个字符后面的位置),不同之处在于,g 修饰符只要剩余位置中存在匹配即可;而 y 修饰符要求剩余位置的第 1 个位置必须匹配成功,否则匹配失败,不管后面有没有符合正则式的内容,直接返回 null

var s = "abc_ab_a";
var r1 = /[a-z]+/g;
var r2 = /[a-z]+/y;
console.log(r1.exec(s),r1.lastIndex); // ["abc", index: 0, input: "abc_ab_a"] 3
console.log(r2.exec(s),r2.lastIndex); // ["abc", index: 0, input: "abc_ab_a"] 3
console.log(r1.exec(s),r1.lastIndex); // ["ab", index: 4, input: "abc_ab_a"] 6
console.log(r2.exec(s),r2.lastIndex); // null 0

正则表达式 r2,第一次成功匹配到字符串 abc,这个 abc 后面的位置是 3,这个就是正则表达式成功匹配的字符串的结束位置,也就是下次迭代匹配开始的位置(即剩余位置的第 1 个位置)。我们看到位置 3 对应的字符是 _,[a-z]+ 匹配失败了,那么就直接甩手不干了,直接返回 null,这脾气,暴躁!

修饰符 u

u 修饰符使得正则表达式可以正常匹配 4 个字节的字符。比如 “[emoji]” 字符是一个 4 字节字符,直接使用正则匹配将会失败,而使用 u 修饰符后,可以匹配成功,如下所示:

var s = "[emoji]";
console.log(/^.$/.test(s)); // false
console.log(/^.$/u.test(s)); // true

如上的代码中,. 表示匹配任意一个字符,除了换行符以外。

关注
打赏
1661566967
查看更多评论
立即登录/注册

微信扫码登录

0.0427s