Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
ASP.Net正则表达式字符串长度验证_Asp.net_Regex - Fatal编程技术网

ASP.Net正则表达式字符串长度验证

ASP.Net正则表达式字符串长度验证,asp.net,regex,Asp.net,Regex,我想验证用户输入到文本框中的字符串是否至少有3个字符长。我使用了以下正则表达式: \w{3,40} 但如果用户输入,则会失败,例如: my valid string 我想要的东西将验证字符串的总长度,包括单词之间的空格,但不是在字符串的结尾或开头 因此,以下是有效的: "a bc" "a b c" "abc" "a b c" 但以下情况并非如此: "a b " " a " " bc" 注意:-这是在客户端完成的,因为对服务器端代码的任何更改都需要重新启动

我想验证用户输入到文本框中的字符串是否至少有3个字符长。我使用了以下正则表达式:

\w{3,40} 
但如果用户输入,则会失败,例如:

my valid string
我想要的东西将验证字符串的总长度,包括单词之间的空格,但不是在字符串的结尾或开头

因此,以下是有效的:

"a    bc"
"a  b  c"
"abc"
"a b c"
但以下情况并非如此:

"a b   "
"  a      "
"    bc"
注意:-这是在客户端完成的,因为对服务器端代码的任何更改都需要重新启动站点,这是我不想做的。

调用输入中的方法,并尝试将其用作正则表达式模式:

[\w\s]{3,40}
\s
将匹配所有空白字符

我在实验室测试


更多信息:

我猜您只是在享受正则表达式带来的乐趣,但以下检查应该有效:

if ( s.Trim().Length >= 3 ) 
{
    // do awesome stuff here that you would never do with some other crazy string
}

我仍在等待有效的正则表达式。我尝试了以下操作,但若字符串末尾有空格,则失败:

^[\S|\S\s]{2,40}\S$
同时,我使用以下方法来实现passon自定义验证功能:

function pageLoad() {
    var val = document.all ? document.all["<%=control.ClientID%>"] : 
                            document.getElementById("<%=control.ClientID%>");
    if (val) {
        val.evaluationfunction = function () {
            try {
                var v = ValidatorGetValue(val.controltovalidate); 
                v = ValidatorTrim(v); 
                return v.length >= 3;
            } catch (err) {
                return true;
            }
        };
    }
}
函数pageLoad(){
var val=document.all?document.all[“”]:
document.getElementById(“”);
if(val){
val.evaluationfunction=函数(){
试一试{
var v=ValidatorGetValue(val.controltovalidate);
v=纵倾(v);
返回v.length>=3;
}捕捉(错误){
返回true;
}
};
}
}

请注意,其中大部分内容都是从Microsoft ASP.Net Javascript验证库中选取的。

试试这个,然后告诉我它是否有效

注:未经测试


[A-Za-z]{3}([A-Za-z]+?)*

这是一个可靠的方法,但它是一个已经运行的应用程序,只需要在正则表达式验证程序中更新它。我不想把其他事情弄糟。如何在正则表达式验证器中调用
trim
?当然可以从ASP.Net代码中调用,但这要在客户端完成。否则就不会有问题了。你们真的需要在正则表达式中使用它吗?@coder页面上已经有一个正则表达式验证器了。我已经让它工作使用正常的JS虽然。但是想到了用
regex
快速关闭它。只是等着看我们是否能建立一个reged。似乎我们需要与团队合作,而我对此不是很精通。:)好吧,你几乎已经搞定了,但如果有人输入数字或其他字符,如'T2013',否则就是有效的输入,它将失败。