0

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

\w{3,40} 

但是如果用户输入说它会失败:

my valid string

我想要一些可以验证总字符串长度的东西,包括单词之间的空格,但不在字符串的结尾或开头。

所以以下是有效的:

"a    bc"
"a  b  c"
"abc"
"a b c"

但以下不是:

"a b   "
"  a      "
"    bc"

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

4

4 回答 4

0

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

[\w\s]{3,40}

\s将匹配所有空白字符。

我在这里测试它

更多:正则表达式基本语法参考

于 2013-09-12T00:14:26.450 回答
0

我猜你只是在玩正则表达式,但以下检查应该有效:

if ( s.Trim().Length >= 3 ) 
{
    // do awesome stuff here that you would never do with some other crazy string
}
于 2013-09-12T00:18:55.957 回答
0

试试这个,让我知道它是否有效......

注:未测试

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

于 2013-09-12T03:54:46.893 回答
0

我仍在等待工作正则表达式。我尝试过以下操作,但如果字符串末尾有空格,则会失败:

^[\S|\S\s]{2,40}\S$

同时我正在使用以下方法来传递自定义验证功能:

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;
            }
        };
    }
}

请注意,其中大部分内容来自 Microsoft ASP.Net Javascript Validation 库本身。

于 2013-09-12T01:55:43.283 回答