[英]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.