李才哥
正则的扩展
原创
关注作者
前往小程序,Get
更优
阅读体验!
立即前往
腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
李才哥
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
社区首页
>
专栏
>
正则的扩展
正则的扩展
原创
李才哥
关注
修改于 2021-02-23 14:31:47
390
0
修改于 2021-02-23 14:31:47
举报
文章被收录于专栏:
李才哥
李才哥
正则的扩展
RegExp 构造函数
第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符
第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝
ES5 不允许此时使用第二个参数添加修饰符,否则会报错
ES6 改变了这种行为。如果RegExp构造函数第一个参数是一个正则对象,那么可以使用第二个参数指定修饰符
字符串的正则方法
字符串对象共有 4 个方法,可以使用正则表达式:match()、replace()、search()和split()
u 修饰符
ES6 对正则表达式添加了u修饰符,含义为“Unicode 模式”,用来正确处理大于\uFFFF的 Unicode 字符
点(.)字符在正则表达式中,含义是除了换行符以外的任意单个字符
对于码点大于0xFFFF的 Unicode 字符,点字符不能识别,必须加上u修饰符
ES6 新增了使用大括号表示 Unicode 字符,这种表示法在正则表达式中必须加上u修饰符,才能识别当中的大括号,否则会被解读为量词
使用u修饰符后,所有量词都会正确识别码点大于0xFFFF的 Unicode 字符
u修饰符也影响到预定义模式,能否正确识别码点大于0xFFFF的 Unicode 字符
RegExp.prototype.unicode 属性
正则实例对象新增unicode属性,表示是否设置了u修饰符
y 修饰符
ES6 还为正则表达式添加了y修饰符,叫做“粘连”(sticky)修饰符
RegExp.prototype.sticky 属性
与y修饰符相匹配,ES6 的正则实例对象多了sticky属性,表示是否设置了y修饰符
RegExp.prototype.flags 属性
ES6 为正则表达式新增了flags属性,会返回正则表达式的修饰符
s 修饰符:dotAll 模式
正则表达式中,点(.)是一个特殊字符,代表任意的单个字符,但是有两个例外
一个是四个字节的 UTF-16 字符,这个可以用u修饰符解决;另一个是行终止符
这被称为dotAll模式,即点(dot)代表一切字符。所以,正则表达式还引入了一个dotAll属性,返回一个布尔值,表示该正则表达式是否处在dotAll模式
后行断言
”先行断言“指的是,x只有在y前面才匹配,必须写成/x(?=y)/
“后行断言”正好与“先行断言”相反,x只有在y后面才匹配,必须写成/(?<=y)x/
Unicode 属性类
ES2018 引入了一种新的类的写法\p{...}和\P{...},允许正则表达式匹配符合 Unicode 某种属性的所有字符
具名组匹配
正则表达式使用圆括号进行组匹配
有了具名组匹配以后,可以使用解构赋值直接从匹配结果上为变量赋值
如果要在正则表达式内部引用某个“具名组匹配”,可以使用\k<组名>的写法
String.prototype.matchAll
如果一个正则表达式在字符串里面有多个匹配,现在一般使用g修饰符或y修饰符,在循环里面逐一取出
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
unicode
ecmascript
regex
javascript
正则表达式
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
unicode
ecmascript
regex
javascript
正则表达式
评论
登录
后参与评论
0 条评论
热度
最新
推荐阅读
LV.
关注
文章
0
获赞
0
目录
RegExp 构造函数
第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符
第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝
ES5 不允许此时使用第二个参数添加修饰符,否则会报错
ES6 改变了这种行为。如果RegExp构造函数第一个参数是一个正则对象,那么可以使用第二个参数指定修饰符
字符串的正则方法
字符串对象共有 4 个方法,可以使用正则表达式:match()、replace()、search()和split()
u 修饰符
ES6 对正则表达式添加了u修饰符,含义为“Unicode 模式”,用来正确处理大于\uFFFF的 Unicode 字符
点(.)字符在正则表达式中,含义是除了换行符以外的任意单个字符
对于码点大于0xFFFF的 Unicode 字符,点字符不能识别,必须加上u修饰符
ES6 新增了使用大括号表示 Unicode 字符,这种表示法在正则表达式中必须加上u修饰符,才能识别当中的大括号,否则会被解读为量词
使用u修饰符后,所有量词都会正确识别码点大于0xFFFF的 Unicode 字符
u修饰符也影响到预定义模式,能否正确识别码点大于0xFFFF的 Unicode 字符
RegExp.prototype.unicode 属性
正则实例对象新增unicode属性,表示是否设置了u修饰符
y 修饰符
ES6 还为正则表达式添加了y修饰符,叫做“粘连”(sticky)修饰符
RegExp.prototype.sticky 属性
与y修饰符相匹配,ES6 的正则实例对象多了sticky属性,表示是否设置了y修饰符
RegExp.prototype.flags 属性
ES6 为正则表达式新增了flags属性,会返回正则表达式的修饰符
s 修饰符:dotAll 模式
正则表达式中,点(.)是一个特殊字符,代表任意的单个字符,但是有两个例外
一个是四个字节的 UTF-16 字符,这个可以用u修饰符解决;另一个是行终止符
这被称为dotAll模式,即点(dot)代表一切字符。所以,正则表达式还引入了一个dotAll属性,返回一个布尔值,表示该正则表达式是否处在dotAll模式
后行断言
”先行断言“指的是,x只有在y前面才匹配,必须写成/x(?=y)/
“后行断言”正好与“先行断言”相反,x只有在y后面才匹配,必须写成/(?<=y)x/
Unicode 属性类
ES2018 引入了一种新的类的写法\p{...}和\P{...},允许正则表达式匹配符合 Unicode 某种属性的所有字符
具名组匹配
正则表达式使用圆括号进行组匹配
有了具名组匹配以后,可以使用解构赋值直接从匹配结果上为变量赋值
如果要在正则表达式内部引用某个“具名组匹配”,可以使用\k<组名>的写法
String.prototype.matchAll
如果一个正则表达式在字符串里面有多个匹配,现在一般使用g修饰符或y修饰符,在循环里面逐一取出
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档
0
0
0
推荐