我有一个表单,当我提交它时,我想先进行电子邮件验证。我创建了一个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/