数字范围的正则表达式在jquery验证中不起作用
在asp.net mvc3视图中,我有一个带有输入的表单。该输入具有数字范围的正则表达式。正则表达式是正确的,但验证结果总是无效的。我不确定我在这里错过了什么。这是渲染的元素。在运行时加载页面后,会将其附加到DOM中数字范围的正则表达式在jquery验证中不起作用,jquery,regex,asp.net-mvc-3,jquery-validate,Jquery,Regex,Asp.net Mvc 3,Jquery Validate,在asp.net mvc3视图中,我有一个带有输入的表单。该输入具有数字范围的正则表达式。正则表达式是正确的,但验证结果总是无效的。我不确定我在这里错过了什么。这是渲染的元素。在运行时加载页面后,会将其附加到DOM中 <input id="ReserveQuantity" class="text-box single-line" type="text" name="ReserveQuantity" data-val="true" data-val-required=
<input
id="ReserveQuantity"
class="text-box single-line"
type="text"
name="ReserveQuantity"
data-val="true"
data-val-required="required."
data-val-number="numeric"
data-val-regex-pattern="/^(?:[0-9]|[1-9][0-9]|10[0-4])$/"
data-val-regex="The field must be in range 0 to 104."
>
我遗漏了什么来正确验证这一点?动态呈现时是否错过了对jquery验证器的调用,或者是其他地方的问题?不知道为什么正则表达式没有正确验证,我仍然愿意接受解释正则表达式的格式正确,我甚至尝试了两种不同的场景,但都没有正确验证。直到我发现一篇写得很好的博文,我才不知所措: 因此,我做了以下更改:
data-val-regex-pattern="/^(?:[0-9]|[1-9][0-9]|10[0-4])$/"
data-val-regex="The field must be in range 0 to 104."
变成
data-val-range="The field must be in range 0 to 104."
data-val-range-min="0"
data-val-range-max="104"
工作起来很有魅力。我知道这有点老了,但我注意到以“/”开头和结尾的模式会导致一些意想不到的行为。你试过没有斜线吗?@Dorival-我不确定我是否试过没有斜线,但我想是的?那是很久以前的事了。在我所有的测试场景中,我都无法使正则表达式正常工作。对于更复杂的情况,我转向了数据值范围和自定义验证。如果你能让正则表达式发挥作用,请随时发布一个包含你的发现的答案,我会检查它是否比这个解决方案更相关。