gpt4 book ai didi

Javascript 返回一个字符串作为 jquery 验证添加方法的正则表达式

转载 作者:行者123 更新时间:2023-11-30 11:10:44 26 4
gpt4 key购买 nike

我在下面使用特定的正则表达式验证了这个 jquery 验证添加方法。

我想要的是创建一个返回正则表达式的方法,就像在我的第二个示例中一样,但是第二个示例不起作用。我收到一些错误消息,提示“对象不支持属性或方法‘测试’”

if (scope.countryCode == "DE") {
$.validator.addMethod('PostalCodeError',
function(value) {
return /^(?!01000|99999)(0[1-9]\d{3}|[1-9]\d{4})$/.test(value);
}, 'Please enter a valid German postal code.');

$("#PostalCode").rules("add", {
PostalCodeError: true
});
}

我想要下面这样的东西

$.validator.addMethod('PostalCodeError',
function(value) {
return GetCountryRegex().test(value);
}, 'Please enter a valid postal code.');

$("#PostalCode").rules("add", {
PostalCodeError: true
});


function GetCountryRegex() {
if (scope.countryCode == "DE") {
return '/^(?!01000|99999)(0[1-9]\d{3}|[1-9]\d{4})$/';
}
if (scope.countryCode == "AT") {
return '/^\\d{4}$/';
}
}

最佳答案

因此,在 GetCountryRegex 中,您实际上并没有返回 RegEx,而是返回的字符串。

使用new RegExp在返回值上将字符串转换为 RegExp:

function GetCountryRegex() {
if (scope.countryCode == "DE") {
return '/^(?!01000|99999)(0[1-9]\d{3}|[1-9]\d{4})$/';
}
if (scope.countryCode == "AT") {
return '/^\\d{4}$/';
}
}

var regExp = new RegExp(GetCountryRegex());
regExp.test(...);

关于Javascript 返回一个字符串作为 jquery 验证添加方法的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53847065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com