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條經驗 獲得超5個贊
你寫的這段代碼如果是放在JS文件中或者瀏覽器開發者工具中執行,打印出的pattern都是正常的。 問題描述中說 console.log打印出的pattern中的花括號沒了,嚴重懷疑是這段代碼寫在了某視圖引擎中,大括號在這個對應的視圖引擎中有特殊意義,比如輸出變量,{15}直接輸出常量15,看起來讓人覺得大括號消失了。
添加回答
舉報
0/150
提交
取消