【问题标题】:Regex for number range not working in jquery validation数字范围的正则表达式在 jquery 验证中不起作用
【发布时间】:2012-08-09 18:59:01
【问题描述】:

在 asp.net mvc3 视图中,我有一个带有输入的表单。输入具有数字范围的正则表达式。正则表达式是正确的,但验证 always 返回无效。我不确定我在这里缺少什么。这是渲染的元素。它在页面运行时加载后附加到 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 验证器的调用还是其他地方的问题?

【问题讨论】:

    标签: jquery regex asp.net-mvc-3 jquery-validate


    【解决方案1】:

    不知道为什么正则表达式不能正确验证并且仍然愿意解释! 正则表达式是正确的,我什至尝试了几个不同的场景,所有这些都没有正确验证。我不知所措,直到我发现了一篇写得很好的博文:http://xhalent.wordpress.com/2011/01/21/arbitrary-client-side-validation-in-asp-net-mvc-3/

    因此,我进行了以下更改:

    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 - 我不确定我是否尝试不使用斜线,但我认为是这样?那是不久前的事了。我永远无法使正则表达式在我的所有测试场景中正常工作。对于更复杂的情况,我转向了数据值范围和自定义验证。如果您能够使正则表达式正常工作,请随时发布您的发现的答案,我将审查它是否比此解决方法更相关。
    猜你喜欢
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 2020-01-20
    相关资源
    最近更新 更多