记录关于正则在smarty渲染遇到的坑,昨天在写项目的时候遇到了正则校验身份证号规则一样,身份证号一样,却一个是true,一个是false

问题展示:
正常在js中是可以的。
在这里插入图片描述
在我项目中出现的问题:
在这里插入图片描述明明一摸一样的校验规则和身份证号,为什么就是结果不一样呢?
接下来我们打印一下我的项目中的正则
在这里插入图片描述
打印一看果然有问题,相信大家也一定看到了问题所在,就是我们正则的大括号{}没了,这是为什么呢?
后来经查阅资料终于明白,在做web开发时,难免会写一些JS,jquery代码。js和jquery里面都会{}这样的符号,smarty会不会把它理解成php的变量呢?答案是:smarty肯定会把它理解变量了。
所以在项目中的正则就失效了,问题知道了,接下来就好解决了
只需要给我们正则外嵌套一个smarty标签{literal}{/literal}就可以解决了。
在这里插入图片描述
代码,可直接复制

{literal}
	var p = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
	//输出 true
	console.log(p)
	console.log(p.test("11010519491231002X"));
	{/literal}

关于smarty不常用标签扩展:http://www.thinkphp.cn/code/968.html
如有疑问可以留言,知无不答。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值