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生成模板时将花括号都删掉了。
求解决办法
1 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
你写的这段代码如果是放在JS文件中或者浏览器开发者工具中执行,打印出的pattern都是正常的。 问题描述中说 console.log打印出的pattern中的花括号没了,严重怀疑是这段代码写在了某视图引擎中,大括号在这个对应的视图引擎中有特殊意义,比如输出变量,{15}直接输出常量15,看起来让人觉得大括号消失了。
添加回答
举报
0/150
提交
取消