Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数字范围的正则表达式在jquery验证中不起作用_Jquery_Regex_Asp.net Mvc 3_Jquery Validate - Fatal编程技术网

数字范围的正则表达式在jquery验证中不起作用

数字范围的正则表达式在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=

在asp.net mvc3视图中,我有一个带有输入的表单。该输入具有数字范围的正则表达式。正则表达式是正确的,但验证结果总是无效的。我不确定我在这里错过了什么。这是渲染的元素。在运行时加载页面后,会将其附加到DOM中

<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-我不确定我是否试过没有斜线,但我想是的?那是很久以前的事了。在我所有的测试场景中,我都无法使正则表达式正常工作。对于更复杂的情况,我转向了数据值范围和自定义验证。如果你能让正则表达式发挥作用,请随时发布一个包含你的发现的答案,我会检查它是否比这个解决方案更相关。