JavaScript:为什么正则表达式中的斜线需要写成双斜线呢?

<script type="text/javascript">
function isDigit(param) {
var reg = new RegExp("^\\d*$"); //为什么写成\d就不行却要写成\\d呢?
return reg.test(param);
}

document.write(isDigit("12345"));
document.write(isDigit("test"));
</script>

因为你那个正则表达式是字符串双引号包裹的,需要用\来转义\,才能被识别成它本身\,如果不用双反斜杠的话,会忽略掉,要么你这样写 var reg=/^\d*$/;就方便多了追问

您好,那为什么*$不需要转义呢?*$这两个也都是字符啊

追答

你不匹配$为什么要转义呢,假如你要匹配$这个符号,你就得转义\\$
你不清楚的话,你就alert("\$");alert("\\$");alert("\\")输出之间的区别就知道了

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-03-30
因为对字符串而言,要转义,就跟java里面的正则一样,然而js本身的特性

/abcd/g; 就不需要了,在字符串中一个\被忽略,2个\才是\

本回答被网友采纳

JavaScript:为什么正则表达式中的斜线需要写成双斜线呢?
因为你那个正则表达式是字符串双引号包裹的,需要用\\来转义\\,才能被识别成它本身\\,如果不用双反斜杠的话,会忽略掉,要么你这样写 var reg=\/^\\d*$\/;就方便多了

javascript 使用 new RegExp 创建正则表达式
new RegExp的时候\\w \\.这样的要用两个反斜杠,即\\\\w, \\\\.因为字符串里反斜杠是转义字符,\\w会变成w。"^[a-zA-Z]\\w+@\\w+\\.com$" == "^[a-zA-Z]w+@w+.com$"

双反斜线的意思是什么?
🔍双反斜杠的作用双反斜杠的作用是将特殊字符转义为普通字符,以便正则表达式引擎能够正确地识别它们。🔍双反斜杠的使用方法在正则表达式中,如果要匹配字符 \\,需要使用双反斜杠 \\\\ 来转义。例如,要匹配字符串 (11|22)[\\d]{5},需要写成 (11|22)[\\\\d]{5}。

Java:这里匹配小括号时,为什么用了两个反斜线呢。用一个表示转义不就...
split是正则表达式,两个\/\/才能代表正则表达式。

javascript 中 右斜线 \/ 和左斜线 \\ 分别是什么用法?
在javascript中左斜线\\没有单独的表示意义。而右斜线\/有两种表示意义:(1)除法。除法运算符 (\/)将两个表达式的值相除。result = number1 \/ number2 参数 result 任何数值变量。number1 任何数值表达式。number2 任何数值表达式。(2)是正则表达式的分隔符。下面将javascript中的官方API附录:构造正则...

JAVA中正则双斜线和单斜线转义的问题
在java里面反斜杆是转义的意思,在正则表达式里面反斜杆也是转义的意思。java里面2个反斜杆,实际输出的是一个反斜杆。你那个正则表达式实际的验证规则是 \\[(.*)\\] ".*"。由于[]中括号是正则表达式里面的关键字,所以要转义。所以你最终匹配的样式是[(.*)] ".*"这个样子的。

正则表达式\\\\\\什么意思啊
java里的"\\"需要转意,System.out.println("\\\\".matches("\\\\\\"));左侧的"\\\\",表示一个"\\";在正则式中"\\\\\\",正则表达式用字符串表示时,一个反斜线需要两个反斜线表示,而两个反斜线当然就用四个表示了。上面输出应该是"true".如需要相关视频文件,请发邮件:weatherlyxiaowei@yeah.net ...

java正则表达式中[&&]用法
可以在非字母字符前使用反斜线,不管该字符是否非转义构造的一部分。 根据Java Language Specification 的要求,Java 源代码的字符串中的反斜线被解释为 Unicode 转义或其他字符转义。因此必须在字符串字面值中使用两个反斜线,表示正则表达式受到保护,不被 Java 字节码编译器解释。例如,当解释为正则表达式时,字符串字...

java 正则表达式 \\\\ 真的不明白
正则表达式中表示数字是字符串 \\d,实际在内存中就是两个字符\\和d, 但在java中\\就得写成\\\\,因此在写程序时就是"\\\\d"。如果在正则中输出一个\\而不是表示转义字符,正则表达式必须存\\\\,实际在内存中就是两个字符\\和\\,但是java中要分别表示这两个\\,每个都必须写成"\\\\",因此要写成"\\\\\\"。

...下这个正则表达式:\/^.+[\\\\\\\/]\/,最主要是为什么要那么多的转义字符...
这个看语境的,理论上\\\\ 和\\\/就足够了,但是某些情况下这个字符串需要进行二次转义,所以\\\\就变成了\\\\\\,\\\/变成了\\\\\/ 比如$i = "\\\\\\\/";reg = "\/^.+" . $i . "\/";

相似回答