JS常用正则表达式及其语法

正则表达式是一种描述文本模式的对象,可以用某种模式去匹配一类字符串。

在JavaScript中,正则表达式通过RegExp对象来表示,RegExp对象可以使用RegExp()构造函数来创建,但更多是通过一种特殊的字面量语法来创建的。

目录

一:创建正则表达式

1.1.通过字面量语法创建

1.2.通过调用RegExp()构造函数创建

二:使用特殊字符

2.1.锚点字符

2.2.[ ]的使用

2.3.预定义字符

2.4.限定字符

2.5.特殊转义符

三:正则表达式的运算符优先级

四:RegExp和String的常用方法

4.1.RegExp方法

4.1.1.test(str)

4.1.2.exec(str)

4.2.String方法

4.2.1.match(regexp)

4.2.2.search(regexp)

4.2.3.replace(regexp,str)

五:常用的正则验证表达式


一:创建正则表达式

1.1.通过字面量语法创建

正则表达式字面量就是包含在一对斜杠“ / "字符之间的字符

let reg = /表达式/附加参数(可选)
例如:let reg = /abc/ 即匹配包含了abc的字符串

其中,字面量中的表达式必须是一个常量字符串,并且附加参数(flags)一共有6个,这些参数既可以单独使用也能以任意顺序一起使用,并且被包含在正则表达式实例中。

标志描述
g全局搜索。
i不区分大小写搜索。
m多行搜索。
s允许 . 匹配换行符。
u使用 unicode 码的模式进行匹配。
y执行“粘性 (sticky)”搜索,匹配从目标字符串的当前位置开始。

1.2.通过调用RegExp()构造函数创建

构造函数中的表达式可以是常量字符串, 也可以是一个js变量

let reg = new RegExp(“表达式”,”附加参数(可选)”);

二:使用特殊字符

2.1.锚点字符

^ 限定开始位置的字符
$ 限定结尾位置的字符
\b 限定单词边界的字符 即匹配\w字符和\W\字符之间或\w与字符串开头或末尾之间的位置
\B 限定非单词边界的字符

注意:[\b] 匹配退格字符

2.2.[ ]的使用

 [ ]表示有一系列字符可供选择,只要匹配其中一个就可以了

[^...]匹配不在方括号中的任意一个字符
[abcdef] 这个正则表达式匹配abcdef中其中一个字母,
[0-9]匹配0到9这段区间中任意一个数字(包括0和9)
[^0-9]表示除0-9外的任意字符
[a-z]匹配a到z中任何一个小写字母
[0-9a-zA-Z]就是匹配 0到9、a到z、A到Z中任意一个字母或数字


2.3.预定义字符

\d匹配数字,相当于[0-9]
\D匹配非数字,相当于[^0-9]
\w匹配任意ASCII单词字符(字母或数字或汉字或下划线) 等价于[a-zA-Z0-9_]
\W匹配任意非字母、数字、汉字或下划线的字符
\s匹配任意Unicode空白符,如空格、换行符、制表符等
\S匹配任意不是空白符的字符
.匹配除了换行符以外的任意字符

2.4.限定字符

?匹配0次或1次 等价于{0,1}
*匹配0次或更多次 等价于{0,}
+匹配1次或更多次 等价于{1,}
{n}重复n次
{n,}匹配n次或更多次(最少n次)
{n,m}匹配n到m次之间 闭区间

2.5.特殊转义符

\f 匹配换页符 
\n 匹配换行符 
\r 匹配回车符 
\t 匹配制表符 
\v 匹配垂直制表符 
\\ 匹配\
\" 匹配 "
\' 匹配 '

三:正则表达式的运算符优先级

运算符描述
\转义符
(),(?:),(?=),[ ]圆括号和方括号
*, +, ?, {n}, {n,}, {n,m}限定符
^, $, \任何元字符、任何字符定位点和序列(位置和顺序)
|替换,或操作

四:RegExp和String的常用方法

4.1.RegExp方法

4.1.1.test(str)

用于判断字符串str是否匹配表达式,返回一个布尔值,如:

var str='abc';
var reg = /a/; 
console.log(reg.test(str));//output:true

4.1.2.exec(str)

返回str中与表达式相匹配的第一个字符串,而且以数组的形式表现(未匹配到则返回 null)

var str='345abc789';
var reg = /\d+/; 
console.log(reg.exec(str));//output:Array ["345"]

4.2.String方法

4.2.1.match(regexp)

返回与regexp相匹配的一个字符串数组,未匹配到则返回 null  可结合全局匹配使用

var str='345abc789';
var reg = /\d+/; 
var reg2 = /\d+/g; 
console.log(str.match(reg));//output:Array ["345"]
console.log(str.match(reg2));//output:Array ["345","789"]

4.2.2.search(regexp)

返回字符串中与regexp相匹配的第一个匹配的index值。没有匹配项时,返回-1。search() 方法不执行全局匹配,它将忽略标志 g

var str='345abc789';
var reg = /a/; 
console.log(str.search(reg));//output:3

4.2.3.replace(regexp,str)

返回将字符串中匹配regexp的部分替换为str的一个新字符串,原字符串不会改变。

var str='345abc789';
var reg = /a/; 
console.log(str.replace(reg,'b'));//output:'345bbc789'

五:常用的正则验证表达式

验证由26个英文字母组成的字符串:/^[A-Za-z]+$/
验证日期格式YYYY-MM-DD hh:mm:ss:/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/
验证整数:/^[-+]?\d*$/
验证小数:/^[-\+]?\d+(\.\d+)?$/
验证中文:/^[\u0391-\uFFE5]+$/
验证邮箱:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
验证手机号:/^1[3456789]\d{9}$/
验证身份证:/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值