2011-07-14 191 views
2

我想只允许在两个字符之间的文本框和空格中使用字符。我试图在以下Javascript代码中避免使用不需要的字符和空白字符串。通过javascript验证文本框输入

var filter = "^[a-zA-Z''-'\s]{1,40}$"; 
     var label = $('#<%= txtName.ClientID %>').val(); 

     if ((label.length > 0) && (label!= '')) { 
      if (label.match(/^[a-zA-Z \s]{1,40}$/)) { 
       if (label.match(/^\s$/)) { 
        alert("Please Enter a Valid name"); 
        return false; 
       } 
       else { 

        $("#myModal").dialog('open'); 
       } 
      } 
      else { 
       alert("Please Enter a Valid name"); 
      } 
     } 
     else { 
      alert("Please Enter a Valid name"); 
     } 

对于除了当用户在文本框中输入多于1个空格时以外的所有内容,此工作正常。我在想,label.match(/^\ s $ /))会处理空白字符串或空格。

感谢

+0

为什么不使用ASP .NET正则表达式验证器或自定义验证器?这样,您可以同时获得客户端和服务器端验证。用户可以轻松绕过JavaScript验证。 –

+0

@Ranhiru Cooray - 你怎么知道他在使用asp.net –

+0

@Ranhiru Cooray你怎么知道他在使用.net? – Luke

回答

1

它看起来像这样是0或更多的工作(RegEx *)! (原谅感叹,我今天早上感觉史诗)

/^\s$/的意思是“只包含一个空间”

我相信你正在寻找

/^\s*$/的意思是“只包含零个或多个空格”

+0

谢谢男人......我真的很无聊,尽管错过了。 – user626309

0

如果你想那么多的场所,如无功expr的使用,你应该使用+符号正则表达式中一个以上的entities.suppose = /(\ S)+/