Javascript 如何使用parsley.js添加多个基于模式的验证器?
知道如何在parsley.js中添加多个regex模式验证器吗?我的代码如下所示:Javascript 如何使用parsley.js添加多个基于模式的验证器?,javascript,parsley.js,Javascript,Parsley.js,知道如何在parsley.js中添加多个regex模式验证器吗?我的代码如下所示: <input type="password" id="password" name="password" autocomplete="off" data-parsley-pattern="^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$" data-parsley-pattern-message="error1" data-parsley-pattern="\\s\\s"
<input type="password" id="password" name="password" autocomplete="off"
data-parsley-pattern="^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$"
data-parsley-pattern-message="error1"
data-parsley-pattern="\\s\\s"
data-parsley-pattern-message="error2"
/>
当我运行它时,两种情况下我只会收到“error1”消息。遗憾的是,这是不可能的 对于字段中的特定验证器,只能注册一次 要么在regexp上多做一点工作来混合这两种需求,要么创建自己的海关验证器(使用不同的名称)来完成每个验证器的验证部分
最佳根据您的正则表达式模式,您似乎正在尝试验证多个邮政编码。这不是你可以用正则表达式做的事情,你不能用欧芹的多种模式,但你可以做一个。下面是我为验证美国邮政编码和加拿大邮政编码而编写的示例。您不需要像公认的答案所建议的那样“使用不同名称的自定义验证器” JavaScript
window.Parsley.addValidator('validateZipcode', {
validateString: function(value) {
if (/^(\d{5}([\-]\d{4})?)$/.test(value)) { // United States Zip Code Format
return true;
} else if (/^([A-Za-z][0-9][A-Za-z] [0-9][A-Za-z][0-9])$/.test(value)) { // Canada Postal Code Format
return true;
} else {
return false;
}
},
messages: {
en: 'US format:<br>00000 or 00000-0000<hr class="mt-1 mb-1">Canada format:<br>A0A A0A'
}
});
window.Parsley.addValidator('validateZipcode'{
validateString:函数(值){
如果(/^(\d{5}([\-]\d{4})$/.test(value)){//美国邮政编码格式
返回true;
}如果(/^([A-Za-z][0-9][A-Za-z][0-9][A-Za-z][0-9])$/.test(value)){//加拿大邮政编码格式
返回true;
}否则{
返回false;
}
},
信息:{
中文:“美国格式:
00000或00000-0000加拿大格式:
A0A”
}
});
HTML
<label class="hidden" for="zip-code">Zipcode</label>
<input
required
type="text"
id="zip-code"
placeholder="Zip Code"
maxlength="10"
data-parsley-trigger="change"
data-parsley-required-message="Zipcode required"
data-parsley-validate-zipcode=""
>
Zipcode
正则表达式模式来自: