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

JS里正则表达式一直返回false

JS里正则表达式一直返回false

幕布斯6054654 2019-03-05 17:27:57
var pattern = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, str = '411432199911112020'; if(!pattern.test(str)){    console.log(pattern);    alert('身份证输入错误')} //这个时候发现打印出来的pattern是: /(^\d15$)|(^\d18$)|(^\d17(\d|X|x)$)/, //正则表达式里的{}花括号都被删掉了。 //百度时候看到一条[相关文章][1] //原题主说是一个dtcms生成模板时将花括号都删掉了。 求解决办法
查看完整描述

2 回答

?
犯罪嫌疑人X

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

你写的这段代码如果是放在JS文件中或者浏览器开发者工具中执行,打印出的pattern都是正常的。 问题描述中说 console.log打印出的pattern中的花括号没了,严重怀疑是这段代码写在了某视图引擎中,大括号在这个对应的视图引擎中有特殊意义,比如输出变量,{15}直接输出常量15,看起来让人觉得大括号消失了。

查看完整回答
反对 回复 2019-03-05
?
BIG阳

TA贡献1859条经验 获得超6个赞

看起来让人觉得大括号消失了。

查看完整回答
反对 回复 2019-03-05
  • 2 回答
  • 0 关注
  • 1454 浏览
慕课专栏
更多

添加回答

举报

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