我有一个表单,当我提交表单时,我想先进行电子邮件验证。我创建了一个js文件,放在主题的js目录中,将它包含在页面上,我的页面是WHITE。我激活了错误,我发现这是错误:
SmartyCompilerException:模板中的语法错误 “d:\项目\ mpm_shop \主题\ pmart \ JS \ processContactFormEmail.js” 在第44行“var re = /^([a-zA-Z0-9_.-+])+\@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4 })+ $ /;” - 意外的“,”,预期的一个:“}”,“”,ATTR in 第667行的D:\ Projects \ mpm_shop \ tools \ smarty \ sysplugins \ smarty_internal_templatecompilerbase.php
我的正则表达是这个:
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;
}
请帮忙。
答案 0 :(得分:1)
你的正则表达式中有错误:
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,这对测试和验证您的表达非常有用!