注意判断js中使用正则表达式的转义字符,到底是对谁进行转义!!!

前言:

前一段时间,对如下一段特殊符号进行测试,js中有一段代码如下:

[`~!@#$^&*()=|{};:'".,[\]./?~@#&*{}]

结果发现不能匹配\,于是没有多想,便将代码修正为

[`~!@#$^&*()=|{};:'".,[\\]./?~@#&*{}]

结果发现,js运行这段代码时出错!!!

----------------------------------------------------------

原因:

这里的符号这段代码根本没有要对  " \ ” 进行匹配,

所看到的"[\]",是对后面的 " ] " 进行匹配


下面是正则表达式中的两个规则,可以解释这个问题。

①[…] 匹配括号中任意字符

②“\”+实际字符 \ . * + ? | ( ) { }^ $ 例如:\\匹配字符“\”


因为不能把中间出现的 ” ] ” 理解为解释,所以要在前面加上 转义,使其作为一个符号

-------------------------------------------------------------------------------------

总结

1.注意JS中的转义字符,因为js中不会像java一样,你不用转义时会报错。

例:

如果出现这样

[`~!@#$^&*()=|{};:'".,[\\]./?~@#&*{}]

或者这样

[`~!@#$^&*()=|{};:'".,[]./?~@#&*{}]

的问题,会使整段js失效!!


2.确定出现的\是否是对后面字符的转义!!!







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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值