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

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生成模板时将花括号都删掉了。

求解决办法


当年话下
浏览 473回答 1
1回答

收到一只叮咚

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

相关分类

Python