exp 转义_转义字符

>[success]转义字符(escape)表示为反斜线(\)+字符的形式,共有以下3种情况

【1】因为元字符有特殊的含义,所以无法直接匹配。如果要匹配它们本身,则需要在它们前面加上反斜杠(\\)

```

console.log(/1+1/.test('1+1')); //false

console.log(/1\+1/.test('1+1')); //true

console.log(/\*/.test('*')); //true

console.log(/*/.test('*')); //报错

```

但实际上,并非14个元字符都需要转义,右方括号]和右花括号}不需要转义

```

console.log(/]/.test(']')); //true

console.log(/\]/.test(']')); //true

console.log(/\}/.test('}')); //true

console.log(/}/.test('}')); //true

```

【2】'\\'加非元字符,表示一些不能打印的特殊字符

```

\0 NUL字符\u0000

[\b] 匹配退格符\u0008,不要与\b混淆

\t 制表符\u0009

\n 换行符\u000A

\v 垂直制表符\u000B

\f 换页符\u000C

\r 回车符\u000D

\xnn 由十六进制数nn指定的拉丁字符

\uxxxx 由十六进制数xxxx指定的Unicode字符(\u4e00-\u9fa5代表中文)

\cX 控制字符^X,表示ctrl-[X],其中的X是A-Z之中任一个英文字母,用来匹配控制字符

```

【3】'\\'加任意其他字符,默认情况就是匹配此字符,也就是说,反斜线(\\)被忽略了

```

console.log(/\x/.test('x')); //true

console.log(/\y/.test('y')); //true

console.log(/\z/.test('z')); //true

```

# 双重转义

由于RegExp构造函数的参数是字符串,所以某些情况下,需要对字符进行双重转义

>[success]字符\在正则表达式字符串中通常被转义为\\\

```

var p1 = /\.at/;

//等价于

var p2 = new RegExp('\\.at');

var p1 = /name\/age/;

//等价于

var p2 = new RegExp('name\\/age');

var p1 = /\w\\hello\\123/;

//等价于

var p2 = new RegExp('\\w\\\\hello\\\\123');

```

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值