知道如何在parsley.js中添加多个正则表达式模式验证吗?我的代码看起来像这样:
<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"
/>
当我运行它时,我只收到两个案例的“错误1”消息。
答案 0 :(得分:2)
可悲的是,这是不可能的。
您只能在字段中注册一次特定验证器。
要么你的正则表达式更多地工作以混合两个要求,要么你创建自己的海关验证器(具有不同的名称),每个验证器都有其验证部分。
最佳
答案 1 :(得分:0)
根据您的REGEX模式,您似乎正在尝试验证多个邮政编码。那不是用REGEX可以做的事情,并且不能用Parsley使用多种模式,但是可以制作一个custom Parsley validation。这是我为验证美国(邮政编码)和加拿大邮政编码而编写的示例。您不需要接受的答案所建议的“具有不同名称的自定义验证器”。
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'
}
});
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=""
>
正则表达式的模式来自:http://html5pattern.com/Postal_Codes