2011-07-14 41 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)+/