如何在JavaScript中验证包含转义符+字母组成的特殊元字符,例如\d,我的代码如下:
var str = "D:\download"; var reg1 = /D:\\download/; document.write(reg1.exec(str) + "<br />"); var reg2 = new RegExp("D:\\\download"); document.write(reg2.exec(str) + "<br />");
都返回null。JavaScript针对\d这类元字符,如果需要解释为数字,只需在字面量声明写成\d或者在构造函数声明写成\\d即可,需要要解释为字符串\d,该如何些正则表达式,加四个\都没用,百思不得其解。在C#中使用一个@即可忽略所有转义...
3 回答
繁花如伊
TA贡献2012条经验 获得超12个赞
<script language="JavaScript">
<!--
var str = "D:\download";
var reg1 = /D:\\download/;
alert(str)
alert(reg1.test(str))
document.write(reg1.exec(str) + "<br />");
var reg2 = new RegExp("D:\\\download");
document.write(reg2.exec(str) + "<br />");
//-->
</script>
你的 var str = "D:\download"; 等于 var str = "D:download";
因为javascript 字符串也是有转义的,你正则没错,是字符串错了,不是你想表达的字符串
大话西游666
TA贡献1817条经验 获得超14个赞
由于反斜杠本身用作转义符,因此不能直接在脚本中键入一个反斜杠。如果要产生一个反斜杠,必须一起键入两个反斜杠 (\\)。所以
var str = "D:\download";
这句话就是错误的,不允许只含一个“\”的非转义字符。详情请查阅W3C的文档。
添加回答
举报
0/150
提交
取消