JS正则

创建方式创建方式有两种//字面量方式,两个斜杠包起来一些正则元字符let reg = /\d+/g;//构造函数方式,注意斜杠转义let reg = new RegExp("\\d+", "g");两种创建方式的区别1、构造函数方式要特别注意反斜杠转义,因为在字符串中 \ 本来就特殊,比如你想输出"\"let str1 = '\' //会报错let str2 ...
摘要由CSDN通过智能技术生成

创建方式

创建方式有两种

//字面量方式,两个斜杠包起来一些正则元字符
let reg = /\d+/g;
//构造函数方式,注意斜杠转义
let reg = new RegExp("\\d+", "g");

两种创建方式的区别

1、构造函数方式要特别注意反斜杠转义,因为在字符串中 \ 本来就特殊,比如你想输出"\"

let str1 = '\'    //会报错
let str2 = '\\'   //正确

2、字面量方式不能插入变量,因为//中间的都是正则元字符,所以要插入变量创建正则的话就只能用构造函数方式

let name = 'sam';
let reg1 = /^--+name+--$/;
let reg2 = new RegExp("^--"+name+"--$");
reg1.test('--sam--')    //false
reg2.test('--sam--')    //true

正则表达式由两个部分组成

元字符

常用量词元字符

*  零到多次
+  1到多次
?  0次或1次
{n}  出现n次
{n,}  出现n到多次
{n,m}  出现n到m次

特殊元字符

\  转义字符
.  除\n(换行符)以外的任意字符
^  以哪个元字符开始
$  以哪个元字符结束
\n  换行符
\b  单词边界
\d  0-9之间的一个数字
\D  非\d
\w  数字、字母、下划线中任意一个字符
\W  非\w
\s  一个空白字符(包括空格、制表符、换页符等)
\t  一个制表符(Tab键:4个空格)
x|y  x或y中的一个字符
[xyz]  x或y或z中的一个字符
[^xy]  除了x和y以外的任意字符
[a-z]  指定a-z范围内的任意字符  //[0-9a-zA-Z_]===\w
[^a-z]  非上一个
()  正则中的分组
(?:)  只匹配不捕获
(?=)  正向预查
(?!)  反向预查

修饰符

i  ignoreCase 忽略大小写
m  multiline 可以多行匹配
g  global 全局匹配

或 |

| 直接使用的时候可能会出现一些不确定性,比如:

let reg = /^18|29$/;
reg.test(18)  //true
reg.test(29)  //true
reg.test(129)  //true
reg.test(189)  //true
reg.test(229)  //true
reg.test(1236629)  //true
//这时reg匹配的是/(^18)|(29$)/以18开始或者是29结束
//如果你想匹配的是18或者29,那么
reg = /^(18|29)$/;

所以,避免不确定性,建议在使用 | 时加上小括号

小括号()

分组,提高优先级,配合 | 使用

参照上文

分组引用

通过"

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值