RegExp正则表达式

RegExp对象

正则表达式(regular expression,在代码中常简写为reg)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。搜索模式可用于文本搜索和文本替换。

语法

/正则表达式主体/修饰符(可选)

实例:
var reg = /xyz/i 
var reg = RegExp('xyz', 'i')

解析:
/xyz/i 是一个正则表达式
xyz 是正则表达式主体
i 是一个修饰符(代表搜索不区分大小写)

正则表达式实例方法

1、RegExp.prototype.test()   正则表达式的test方法返回一个布尔值,表示当前模式是否能匹配参数字符串

var reg = /cat/;
reg.test('cats and dogs');  // 结果为true 
// 上面验证的字符串中包含了cat,因此结果返回为true

2、RegExp.prototype.exec()   正则表达式的exec方法,用了返回匹配结果。如果匹配成功就返回一个数组,成员是匹配成功的子字符串,否则返回null。

var s = 'size';
var reg1 = /z/;
var reg2 = /y/;

reg1.exec(s); // ['z'];
reg2.exec(s); // null

// 正则对象reg1匹配成功,返回一个数组,成员是匹配结果;正则对象reg2匹配失败,返回null。

字符串的实例方法

1、String.prototype.match()   字符串实例对象的match方法对字符串进行正则匹配,返回匹配结果;

var s = size;
var reg1 = /z/;
var reg2 = /y/;

s.match(reg1); // ['z']
s.match(reg2); // null

// 字符串的match方法与正则对象的exec方法非常类似:匹配成功返回一个数组,匹配失败返回null。

2、String.prototype.search()   字符串对象的search方法,返回第一个满足条件的匹配结果在整个字符串中的位置。如果没有任何匹配,则返回-1

var s = size;

s.search(/z/); // 2
s.search(/y/); // -1

// 第一个匹配结果出现在字符串的2号位置。

元字符和量词

1、点字符(.) 匹配除回车(\r)、换行(\n) 、行分隔符(\u2028)和段分隔符(\u2029)以外的所有字符

/d.g/

// d.g匹配d和g之间包含任意一个字符的情况, 比如 dog、dig、ding等等

2、位置字符

  • ^ 表示字符串的开始位置
  • $ 表示字符串的结束位置
/^size/.test('size123') // true
// size必须出现在开始位置

/size$/.test('new size') // true
// size必须出现在结束位置

/^size$/.test('size') // true
/^size$/.test('size test') // false
// 从开始位置到结束位置只能有size

3、选择符(|)  在正则表达式中表示“或关系”(OR),即cat|dog表示匹配catdog

/cat|dog/.test('cats') // true

4、转义符  正则表达式中那些有特殊含义的元字符,如果要匹配它们本身,就需要在它们前面要加上反斜杠。

/1+2/.test('1+2') // false

/1\+2/.test('1+2') // true

// +号需转义

正则表达式速记表

表达式描述元字符描述量词描述
[abc]a、b或c的单一字符.任何单一字符(...)捕捉所有封闭的东西
[^abc]除a、b或c外的任何单一字符\s任何空格字符(a|b)a或b
[a-z]a-z范围内的任何单个字符\S任何非空白字符a?

零或一个

[a-zA-Z]a-z或A-Z范围内的任何单个字符\d任何数字a*

零或多个

^开线\D任何非数字a+一个或多个
$线路末端\w任何单词字符(字母、数字、下划线)a{3}准确的说是3个
\A字符串的开始\W任何非文字字符a{3,}3或更多
\z弦尾\b任何词界a{3,6}在3至6之间
修饰符: i 大小写不敏感      m 多行匹配     g 执行全局匹配     o 只执行一次

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@Demi

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值