首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

玩透JavaScript正则表达式一

正则表达式(也称为regex)是一种处理字符串的方法,性能非常好。

通过使用特殊的语法构造正则表达式,您可以

1)搜索文本字符串

2)替换字符串中的子字符串

3)从字符串中提取信息

几乎每一种编程语言都实现正则表达式。每个实现之间都有细微的差异,但是通用的概念几乎适用于所有地方。正则表达式可以追溯到20世纪50年代,当时它被正式化为字符串处理算法的概念性搜索模式。JavaScript是直接内置正则表达式支持的编程语言之一。

创建

1)字面量创建,如果你的正则表达是固定的,使用此方案创建,性能较好。

2)构建函数创建,如果你的正则表达是动态的,比如需要输入时生成或是代码逻辑生成,需要用此种方式创建。

匹配标志

除了模式外,RegExp对象还接受一个可选的标志参数。

1)忽略大写小标志 i

默认情况下,搜索是区分大小写的。例如/abc/只匹配字符串hi而不是Abc。

2)全局搜索标志 g

默认情况下,是非全局搜索。

3)混合使用i和g

RegExp.prototype.test()

RegExp.prototype.exec()

元字符

这里只涵盖比较常用的

\n:匹配换行符

\t:匹配制表符

\b:匹配单词的开头或结尾

\s: 匹配空白

\S:匹配非空白

\d :匹配数字 (如同 [0–9])

\D :匹配非数字 (如同 [^0–9])

\w: 匹配字母数字以及下划线(如同 [a-zA-Z0–9_] )

\W: 匹配非字母数字以及下划线(如同 [^a-zA-Z0–9_] )

. :匹配除换行符外的任意字符

[^]:匹配任何字符,包括换行符,对多行字符串很有用

+:匹配前面的表达式1次或多次(如同 {1,})

* :匹配前面的表达式0次或多次(如同 {0,})

? :匹配前面的表达式0次或1次(如同 {0,1})

^:匹配字符串的开头,它后面的正则表达式应该在测试字符串的开头

$ :匹配字符串的结尾,它后面的正则表达式应该在测试字符串的结尾

| : 或,匹配两者中的一个

\ : 转义字符,匹配原生字符串

捕获与非捕获

(x) -匹配x并记住匹配项。这些被称为捕获组。它还用于在正则表达式中创建子表达式。例如:

(?:x) -匹配x,不记忆匹配。这些被称为非捕获组。例如:

x(?=y) -只在x后面跟着y时匹配x。例如:

例子

从字符串中提取数字

匹配电子邮件地址

获取HTML标记内的内容

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201107A03YIE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券