[英]JavaScript Regex - Match a string with that contains some characters and doesn't contain others
要求:
正則表達式應與不包含“ @”符號但至少包含兩個字母字符且長度在2至50個字符之間的字符串匹配。
通過示例:
"Hi there!%%#"
" fd"
" 9 z 80212132 z"
失敗示例:
"anything with @"
"a"
" 9 z 80212132 "
"This string does not contain at symbol and has two characters but is too long!"
我相信我已經接近了,但是除[a-zA-Z]之外的任何其他字符都將失敗,並且我不確定為什么:
^((?![@])(?=[a-zA-Z]).){2,50}$
您的正則表達式不會檢查至少兩個Alpha。
您可以使用以下正則表達式:
^(?=(?:[^A-Za-z]*[A-Za-z]){2})[^@]{2,50}$
說明 :
^
-字符串的開頭 (?=(?:[^A-Za-z]*[A-Za-z]){2})
-必須至少出現兩次零個或多個非字母字符,后跟一個字母 [^@]{2,50}
- @
以外的2到50個字符 $
-字符串結尾。 var re = /^(?=(?:[^A-Za-z]*[A-Za-z]){2})[^@]{2,50}$/; var strs = ['Hi there!%%#', ' fd' , ' 9 z 80212132 z', 'anything with @ a', ' 9 z 80212132 ', 'This string does not contain at symbol and has two characters but is too long!']; // demo for (var s of strs) { document.body.innerHTML += "<i>" + s.replace(/ /g, ' ') + "</i> test result: <b>" + re.test(s) + "</b><br/>"; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.