Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.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
C# 正则表达式在jQuery验证中不起作用_C#_Javascript_Jquery_Regex_Validation - Fatal编程技术网

C# 正则表达式在jQuery验证中不起作用

C# 正则表达式在jQuery验证中不起作用,c#,javascript,jquery,regex,validation,C#,Javascript,Jquery,Regex,Validation,我很难让正则表达式使用jQuery验证。假设我使用一个简单的正则表达式,它至少需要8个字符才能匹配: (?=.{8,}) 如果把这个插进电源,它就可以正常工作。8个或更多字符匹配,7个或更少字符不匹配 此外,如果我在C#中测试这一点,它也可以工作: var regex = new Regex(@"(?=.{8,})"); if (regex.IsMatch(myInput)) { // Hits this code whe

我很难让正则表达式使用jQuery验证。假设我使用一个简单的正则表达式,它至少需要8个字符才能匹配:

(?=.{8,})
如果把这个插进电源,它就可以正常工作。8个或更多字符匹配,7个或更少字符不匹配

此外,如果我在C#中测试这一点,它也可以工作:

        var regex = new Regex(@"(?=.{8,})");
        if (regex.IsMatch(myInput))
        {
            // Hits this code when myInput >= 8 characters
        }
接下来,我在视图模型中使用ValidationAttribute来发出jQuery验证,以确保用户的输入与表达式匹配:

    [RegularExpression(@"(?=.{8,})", ErrorMessage="Does not match.")]
    public string MyInput { get; set; }
在这一点上,它崩溃了。无论我在字段中键入什么,都不匹配。发出的HTML如下所示:

    <input data-val="true" data-val-regex="Does not match." 
            data-val-regex-pattern="(?=.{8,})"  id="MyInput" name="MyInput"
            type="text" value="" />

我尝试过不同的正则表达式,但没有用。jQuery验证中的正则表达式是否有我忽略的一些不同之处?

也许这样可以:

RegularExpression(@"^.{8,}$")

希望这有帮助。干杯

很有趣。此正则表达式在网页上工作,但在服务器代码中失败。基本上与我原来的问题相反。好像我需要将输入匹配到两个不同的正则表达式,一个在浏览器中,另一个在服务器上验证。奇怪,嗯,奇怪。那正则表达式(@“{8,}”)呢?我刚刚在C#上测试过,答案中的正则表达式是有效的。你不是在别的地方犯了错误吗?你是对的,我在测试这个时犯了一个错误。这应该是可行的,尽管我不完全清楚为什么原始表达式在除了jQuery验证之外的任何地方都可以工作。我的理解是?=构造表示向前看,而{8,}检查8到任意数量的字符。也许正则表达式的jQuery/JavaScript实现与.NET不一致。谢谢你的帮助!欢迎是的,在实现上有一些变化。你能把答案标为已接受吗?