正则表达(一):基础

正则表达式由两部分组成

  • 元字符
  • 修饰符

创建方式

  • 字面量方式:let reg = /\d/
  • 构造函数方式:let reg = new RegExp("\\d")

常用及特殊元字符

符号意义
*出现0到多次
+出现1到多次
出现0次或1次
n出现n次
{n}出现n到多次
{n,m}出现n到m次
^以哪个字符开始
$以那个字符结束
.除\n意外的任意字符
\转义字符
\d查找(0~9)数字
\D非(0~9)数字
\s查找空白字符、Tab、换页符
\w匹配字母或数字或下划线或汉字 等价于 ‘[^A-Za-z0-9_]’
\W匹配非数字字母下划线
\b匹配单词边界
x|yx或y中的一个字符
[xyz]x或者y或者z中的一个字符
[^xy]除了x/y以外的字符
[a-z]指定a-z的任意字符
()分组符号
(?:)只匹配不捕获
(?=)正向预查
(?!)反向预查

修饰符

符号意义
i忽略大小写
m多行匹配
g全局匹配

一些特殊栗子

//了解exec
/\d/.exec("a12"); // ["1", index: 1, input: "a12", groups: undefined]
/\d+/.exec("a12-123");// ["123", index: 1, input: "a123-123", groups: undefined]
//接下来的内容将只展示exec按规则捕获的字符串和index

$^字符的特殊:

//   $/^两个都不加,则字符串中包含即可
/\d/.exec("a12") //"1", index: 1

//  $和^两个都加,则字符串中只能包含规定内容
/^\d$/.exec("123")  //null  只能为只有一个字符且位数字的字符串
/^\d$/.exec("1")   // "1", index: 0
/^\d+$/.exec("123"); //"123", index: 0
/^\d+$/.exec("a12");  //null
/^1\d{10}$/.exec("12312312312")  //以1开头后面+10个数字结尾 "12312312312", index: 0
/^1\d{10}/.exec("123123123123123aaa") //"12312312312", index: 0,

使用|运算符需要注意的地方

/^123|456$/: 以123开头或456结尾都可
/^(123|456)$/: 只能是123或者456

使用[]符需要注意的地方

  • []里的字符几乎都为自己本身含义(\d除外)
  • []里不能出现多位数
let reg1 = /^[*+]+$/; //-->[*+]代表一个*或一个+,[*+]+代表一个*或一个+出现多次
reg1.exec("**==") //"**++",index:0

let reg2 = /^[\d]$/; //代表一个数字
reg2.exec("\\"); //null
reg2.exec("1"); // "1",index:0
let reg3 = /^[\\d]$/; //代表\或d

let reg4 = /^[10-29]$/; //代表1或者0-2或者9
let reg5 = /^[(10-29)]$/;// 代表'('/ '1' / '0-2' / '9' / )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值