javascript - Prestashop Smarty 电子邮件正则表达式验证

标签 javascript regex validation smarty prestashop

我有一个表单,当我提交它时,我想先进行电子邮件验证。我创建了一个js文件,放入主题的js目录中,将其包含在页面上,我的页面是白色的。我激活了错误,发现这是错误:

SmartyCompilerException: Syntax Error in template "D:\Projects\mpm_shop\themes\pmart\js\processContactFormEmail.js" on line 44 "var re = /^([a-zA-Z0-9_.-+])+\@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;" - Unexpected ",", expected one of: "}" , " " , ATTR in D:\Projects\mpm_shop\tools\smarty\sysplugins\smarty_internal_templatecompilerbase.php on line 667

我的正则表达式是这个:

var re = /^([a-zA-Z0-9_.-+])+\@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;

我尝试像这样匹配它:

if (!email.match(re)) {
                    $('#email').css('border', '1px solid red'); 
                    $('.errorEmail').html('Email non è valido');
                    valid = false;
                }

请帮忙。

最佳答案

您的正则表达式有错误:

var re = /^([a-zA-Z0-9_.-+])+\@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;

在第一组中, 之间有一个破折号。和 + (.-+),这是错误的原因。

你只需要转义它:

var re = /^([a-zA-Z0-9_.\-+])+\@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;

下次遇到正则表达式问题时,可以使用在线正则表达式工具,例如 Regexr ,这对于测试和验证你的表达非常有帮助!

关于javascript - Prestashop Smarty 电子邮件正则表达式验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22830769/

相关文章:

javascript - $(this).prop ('property' ) 与 this.property

php - 由于重复捕获组而不是捕获重复组,正则表达式不匹配

java - 按数字正则表达式分割字符串

jquery 验证仅针对可见控件

html5 验证表单标签

javascript - JQuery 自动完成 - 强制选择

javascript - AngularJS 计算总订单金额

javascript - 通过 JQuery Ajax 加载 ZeroClipboard 或 ZClip(复制到剪贴板按钮)

javascript - 将正则表达式模式从 Javascript 转换为 PCRE (perl)

javascript - 古腾堡 block 验证失败(缺少属性)