我正在尝试将自定义规则添加到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' );
我在浏览器控制台中没有任何错误。我对正则表达式不太熟悉,所以任何帮助都会非常感激。感谢。
答案 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;