簡體   English   中英

javascript正則表達式不起作用

[英]javascript regex doesn't work

我想創建一個注冊表單。 當然,每個用戶都必須選擇用戶名和密碼,但我想,用戶名中只有小的az字符和數字0-9。 我想使用正則表達式和JavaScript。 這是代碼:

<!DOCTYPE HTML>  
<html lang="en-US">  
<head>  
  <meta charset="UTF-8">  
  <title></title>  
  <script type="text/javascript">  
    function check(value) {  
      valid_qwe = /[a-z0-9\-]$/;
      trying = valid_qwe.test(value);
      alert("The name: " + value + "\nBe allowed: " + trying);  
      return valid_qwe;  
    }
  </script>  
</head>  
<body>  
  <input type="text" autofocus id="qwe" name="qwe" value="" />  
  <input type="submit" onClick="check(document.getElementById('qwe').value);" value="Check" id="check" />  
</body>  
</html>  

但是,當我試圖測試例如:apple或#apple總是寫“真”。

我該怎么辦?

謝謝!

應該:

var valid_qwe = /^[a-z0-9-]+$/;

這里有三個變化:

  • 模式本身現在是one or more characters of the given range (注意括號后面的+量詞);

  • 它固定在字符串的末尾(帶$ )和開頭(帶^ );

  • 無需逃避-在角色范圍內,如果它是它的最后一個或第一個符號。

最后,我寧願看到你本地函數中使用的所有變量本地化 - 因此var

你的Regexp測試最后一個字符是否在這些約束內,嘗試使用/^[a-z0-9\\-]+$/

你的正則表達式是正確的( 除了你檢查最后一個字符 ),但你沒有匹配完整的字符串。

在正則表達式中添加一個+ ,表示匹配前一個標記中的一個或多個。

所以你的正則表達式應該是:

var valid_qwe = /[a-z0-9\-]+/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM