使用jquery验证插件排除某些电子邮件国家/地区域

时间:2014-02-11 17:28:10

标签: jquery regex validation plugins

我正在尝试将自定义规则添加到jquery验证插件中,它会阻止此人输入国家/地区域名为“cu,ir,kp,sd,sv”的电子邮件地址。例如,用户将无法输入johnsmith@yahoo.cu或johnsmith@yahoo.kp。

我尝试创建正则表达式,但仍允许我输入任何电子邮件国家/地区域。

这是我到目前为止所拥有的:

$.validator.addMethod(
                    "wrong_domain",
                    function (value,element,params) {
                        var emaildomain = new RegExp("(/cu$/) | (/ir$/) | (/kp$/) | (/sd$/) | (/sy$/)");
                        if (emaildomain.test(value)) return false;                      
                    },
                    'Not an acceptable email' );

我在浏览器控制台中没有任何错误。我对正则表达式不太熟悉,所以任何帮助都会非常感激。感谢。

1 个答案:

答案 0 :(得分:0)

看起来你正在尝试在RegExp构造函数中创建多个正则表达式。每组斜杠(/)旨在开始一个新的正则表达式,但你不能在JS构造函数中这样做。相反,请试一试:

var emaildomain = /\.(cu|ir|kp|sd|sy)$/i;
if (emaildomain.test(value)) return false;

或者只是切断了中间人:

if (/\.(cu|ir|kp|sd|sy)$/i.test(value)) return false;

或者如果您仍想使用对象构造函数:

var emaildomain = new RegExp("\\.(cu|ir|kp|sd|sy)$", "i");
if (emaildomain.test(value)) return false;