JavaScript正则表达式验证路径

如何在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#中使用一个@即可忽略所有转义...

慕尼黑8549860
浏览 875回答 3
3回答

繁花如伊

<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

由于反斜杠本身用作转义符,因此不能直接在脚本中键入一个反斜杠。如果要产生一个反斜杠,必须一起键入两个反斜杠 (\\)。所以 var str = "D:\download"; 这句话就是错误的,不允许只含一个“\”的非转义字符。详情请查阅W3C的文档。

尚方宝剑之说

同上,非常感谢
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript