我正在使用vue和vee-validate,想检查输入是否是一个有效的十进制,逗号作为分隔符。
我对regex的输入如下所示:

<input type="text" v-model="myDecimal" v-validate:myDecimal="{ regex: /^(\d+|\d+,\d+)$/ }" :class="{'error': errors.has('mydecimal') }" ref="mydecimal" name="mydecimal" />
<span v-show="errors.first('mydecimal')" :class="{'field-validation-error': errors.has('mydecimal') }">NOT CORRECT DECIMAL!</span>

这对“1”、“1,2”、“0,4”、“1228761”非常有效。很完美!
“0”、“foo”、“1e”的错误显示正确。很完美!
但如果我输入以下内容,我不会得到任何错误,但我希望有一个错误:“1,1,1”或“1,1foo”。
你知道我做错了什么吗??谢谢!

最佳答案

之前(非工作示例):

<input v-model="myDecimal" v-validate:myDecimal="{ regex:/^([0-9]+|[0-9]+,[0-9]{0,2}?)$/ }" />

之后(工作示例):
<input v-model="myDecimal" v-validate="{ regex:/^([0-9]+|[0-9]+,[0-9]{0,2}?)$/ }" />

关于vue.js - vee-validate正则表达式无法按预期工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47988591/

10-12 00:16