在 VeeValidate 和 VueJs 中使用正则表达式进行多重验证
using multiple validation with regex in VeeValidate and VueJs
我在最新的 VueJs 应用程序中使用 VeeValidate 应用多重验证,但这不起作用。此正则表达式仅允许字母、数字、space 和一些特殊字符。然而,VeeValidate 总是 returns false.
<ValidationProvider name="Address"
:rules="{
required: true,
max:25,
regex:'/[a-zA-Z0-9\s_@./#&:;+-]*$/'}"
v-slot="validationContext">
<b-form-group id="lbl-city" label="*Address:">
<b-form-input id="txt-customer-address"
v-model="formData.address"
placeholder="Enter Address"
:state="getValidationState(validationContext)"
aria-describedby="input-3-feedback">
</b-form-input>
<b-form-invalid-feedback id="input-3-feedback">
{{ validationContext.errors[0] }}
</b-form-invalid-feedback>
</b-form-group>
</ValidationProvider>
有什么建议吗?
您需要应用正则表达式分隔符而不是字符串。因此,在您的情况下,您可以像这样从正则表达式中删除“'”
<ValidationProvider name="Address"
:rules="{
required: true,
max:25,
regex:/[a-zA-Z0-9\s_@./#&:;+-]*$/
}"
v-slot="validationContext"
>
...
</ValidationProvider>
我发现了问题。
[1] 正则表达式错误,最初缺少 ^ 符号
[2] 正则表达式中的 \s 允许 space 所以我最后在我的正则表达式
中添加了 space
所以最终的正则表达式是
正则表达式:/^([a-zA-Z0-9_@;: ])*$/,
现在,它只接受字母,数字,Space 和后面的字符@;;_
我在最新的 VueJs 应用程序中使用 VeeValidate 应用多重验证,但这不起作用。此正则表达式仅允许字母、数字、space 和一些特殊字符。然而,VeeValidate 总是 returns false.
<ValidationProvider name="Address"
:rules="{
required: true,
max:25,
regex:'/[a-zA-Z0-9\s_@./#&:;+-]*$/'}"
v-slot="validationContext">
<b-form-group id="lbl-city" label="*Address:">
<b-form-input id="txt-customer-address"
v-model="formData.address"
placeholder="Enter Address"
:state="getValidationState(validationContext)"
aria-describedby="input-3-feedback">
</b-form-input>
<b-form-invalid-feedback id="input-3-feedback">
{{ validationContext.errors[0] }}
</b-form-invalid-feedback>
</b-form-group>
</ValidationProvider>
有什么建议吗?
您需要应用正则表达式分隔符而不是字符串。因此,在您的情况下,您可以像这样从正则表达式中删除“'”
<ValidationProvider name="Address"
:rules="{
required: true,
max:25,
regex:/[a-zA-Z0-9\s_@./#&:;+-]*$/
}"
v-slot="validationContext"
>
...
</ValidationProvider>
我发现了问题。
[1] 正则表达式错误,最初缺少 ^ 符号 [2] 正则表达式中的 \s 允许 space 所以我最后在我的正则表达式
中添加了 space所以最终的正则表达式是 正则表达式:/^([a-zA-Z0-9_@;: ])*$/,
现在,它只接受字母,数字,Space 和后面的字符@;;_