发新贴  快速回复

那些符号是需要转义字符表示的了,邮箱中的@(Email:^\w+@[a-z0-9]+(\.[a-z]+){1,3}$)为什么不用转义?
网址:[a-zA-z]+://[^\s]*中的:/也不需要吗?
在var re = new RegExp('\\b'+sClass+'\\b');却会被自动转义需要多写一个\?

Shark
2017-12-23 14:59

那些符号是需要转义字符表示的了,邮箱中的@(Email:^\w+@[a-z0-9]+(\.[a-z]+){1,3}$)为什么不用转义?

网址:[a-zA-z]+://[^\s]*中的:/也不需要吗?

在var re = new RegExp('\\b'+sClass+'\\b');却会被自动转义需要多写一个\?

本帖内容针对以下视频发布:

11-正则中的量词和首尾匹配
 
2017年2月8日

首先,要看看这个符号是不是被正则用来规定某些功能的,例如,星号(*)已经被正则用来表示任意个字符了。那么如果此刻你还想表示真正的星号(*),那就要在*前面加反斜杠\。

 

目前我能想起来被正则用了的符号有 ( [ { \ ^ $ | ) ? * . +  还有没有其它的,我不知道。(好像没有了)

这个 / 也需要   因为正则/\s/g 这样表示

 

所以@ :这些符号都不需要加反斜杠,直接用就行。

 

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

 

字符串中:var str='123abc'; 如果这个字符串中要加个单引号 ' ,那必须这样写var str='123a\'bc';原因就是字符串用''表示,所以中间加 ' 就会混淆。所以用个 \ 来告诉计算机这里是个单引号。

 

如果你的字符串是用双引号表示的var str="123abc",想要加单引号就可以直接写了,var str="123a'bc"; 但是加双引号就需要 \ ,var str="123a\"bc";

 

从上面你就可以看到一个问题了,如果要一个正真的反斜杠\ 该怎么写?

 

是这样写的var str="123a\\abc";  console.log(str)  输出 123a\abc

 

从这里就可以看出new RegExp('\\b'+sClass+'\\b') 引号里面的\b要加 \ ,\b是正则,在字符串中使用\必须这样写\\。所以正则中的\b在字符串中就必须\\b

 

 

2017-12-23 20:19  回复本帖
登录 后才可以发表回复