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

时间:2014-04-03 07:34:41

标签: javascript regex validation smarty prestashop

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

请帮忙。

1 个答案:

答案 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,这对测试和验证您的表达非常有用!