为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript正则表达式验证路径

JavaScript正则表达式验证路径

慕尼黑8549860 2018-12-06 15:17:10
如何在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 字符串也是有转义的,你正则没错,是字符串错了,不是你想表达的字符串
查看完整回答
反对 回复 2018-12-24
?
大话西游666

TA贡献1817条经验 获得超14个赞

由于反斜杠本身用作转义符,因此不能直接在脚本中键入一个反斜杠。如果要产生一个反斜杠,必须一起键入两个反斜杠 (\\)。所以

var str = "D:\download";

这句话就是错误的,不允许只含一个“\”的非转义字符。详情请查阅W3C的文档。

查看完整回答
反对 回复 2018-12-24
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

同上,非常感谢

查看完整回答
反对 回复 2018-12-24
  • 3 回答
  • 0 关注
  • 874 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信