码迷,mamicode.com
首页 > Web开发 > 详细

smary里Js正则表达式不正常

时间:2020-09-17 22:28:48      阅读:33      评论:0      收藏:0      [点我收藏+]

标签:长度   输入   turn   程序   nbsp   提醒   部分   身份证   font   

前段时间写微信公众号程序,里面身份证号码判断时,随便搜了网上的程序来用,结果正确的身份证号也不能过。

报身份证号错的地方是这样判断的:

    if (!(/^\d{17}[0-9X]$/.test(num))) {
        return ‘输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X。‘;
    }

 

逻辑是没任何问题。但这里的num,把正确的身份证号码放进去,也会报错。

 

只好调试,发现源代码的{}被吃掉了。\d{17}到了浏览器成了\d17

这下才想起来,模板程序smarty把{}提前解析了。于是在js部分加上了:

<literal>

    if (!(/^\d{17}[0-9X]$/.test(num))) {
        return ‘输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X。‘;
    }
</literal>

 

这样就都正常了。这里的literal 是smarty的语法,是要求smarty 不要对里面的部分解析。

 

在这里提醒用smarty且用到了js的regex的同学。

 

smary里Js正则表达式不正常

标签:长度   输入   turn   程序   nbsp   提醒   部分   身份证   font   

原文地址:https://www.cnblogs.com/yingjiang/p/13655814.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!