正则简单整理

1.什么是正则,常用的处理方式

正则:它是一个规则,用来处理字符串的一个规则

处理:

// (1)判断一个字符串是否符合我们制定的规则 ->test"reg.test(str)
 var reg = /\d/; //->包含一个0-9之间的数字
 console.log(reg.test("正则")) //false
 console.log(reg.test("1")) //true
 console.log(reg.test("正则1")) //true
// (2)把字符串中符合我们正则规则的内容捕获到->exec:reg.exec(str)
 var reg = /\d/; //->包含一个0-9之间的数字
 console.log(reg.exec("正则")) //null
 console.log(reg.exec("1")) //["1",index:0,input:"1"]
 console.log(reg.exec("正则1")) //true

2.如何创建一个正则

有两种方式:

字面量方式:var reg = /\d/;

实例创建方式:var reg = new regExp("/\d/");

注:两种创建方式是有区别的,创建对象的两种方式是没有区别的。

字面量方式和实例的创建方式在正则的区别?

1)字面量方式中出现的一切都是元字符,所以不能进行变量值的拼接,而实例创建的方式是可以的

2)字面量方式中直接写\d就可以,而实例中需要把它进行转译成\\d

 var name = 'peiqi';
 // 在字面量方式中,我们//之间包起来的所有内容都是元字符,有的具有特殊的意义,大部分都是代表本身含义的普通元字符
 var reg = /^\d+"+name+"\d+$/;
 console.log("212peiqi123") //false
 console.log('212""peiqi"123') //true

 // 对于这样的需求,我们只能使用实例创建的方式
 var reg = new RegExp("/^\\d+"+name+"\\d+$/");
 console.log("212peiqi123") //true

3.如何学习正则

菜鸟教程

console.dir(RegExp.prototype) :这个可以看到RegExp原型上的方法。

 

元字符:每一个正则都是由元字符和修饰符组成的。[元字符]->在//之间具有意义的一些字符

常用的正则元字符

\

转义后面字符所代表的含义

^

以某一个元字符开始

$

以某一个元字符结尾

\n

匹配一个换行符

.

除了\n以为的任意字符要匹配 . ,请使用 \. 。

\r

匹配一个回车符

()

分组->把一个大正则本身划分成几个小的正则

x|y

x或y中的一个

[xyz]

xyz中的一个

[^xyz]

除了这三个之外的任意字符

[a-z]

a到z之间的任意字符

[^a-z]

除了a-z之间的任意字符

\d

匹配一个0-9之间的数字

\D

除了0-9之间的数字意外的任意字符

\b

一个边界符"w1 w2 w3"

\w

数字、字母、下划线中的任意一个字符[0-9a-zA-Z]

\s

匹配一个空白的字符、空格、一个制表符、换行符...

\S

匹配任何非空白字符

特殊字符

*

代表出现次数的量词字元字符,* 等价于{0,}

+

出现1到多次,等价于{1,}

?

可能出现0次或1次,等价于{0,1}

{n}

出现n次

{n,}

出现n到多次

{n,m}

出现n到m次

修饰符

i

不缺分大小写

g(全局匹配)

查找所有匹配项

s(特殊字符圆点.中包含换行符\n)

默认情况下的圆点.是匹配除换行符\n之外的字符,加上s修饰后的,.中包含换行符\n

m(多行匹配)

使边界字符^和$匹配每一行中的开头和结尾,记住是多行,而不是整个字符串的开头和结尾

4.常用的正则匹配规则

match()

var str="Google runoob taobao runoob"; 
var n1=str.match(/runoob/);   // 查找第一次匹配项
var n2=str.match(/runoob/g);  // 查找所有匹配项

推荐一些匹配规则的文章:

https://www.cnblogs.com/mrwill/archive/2018/01/28/8371409.html

https://www.jb51.net/article/72867.htm

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值