我有這個正則表達式只允許字母數字字符。正則表達式來檢查至少3個字符?
如何檢查字符串是否至少包含3個字母字符。
我現在的正則表達式,
if(!/^[a-zA-Z0-9]+$/.test(val))
我想執行字符串,以確保至少有3個連續的字母字符以及左右;
111 // false
aaa1 // true
11a // false
bbc // true
1a1aa // false
我有這個正則表達式只允許字母數字字符。正則表達式來檢查至少3個字符?
如何檢查字符串是否至少包含3個字母字符。
我現在的正則表達式,
if(!/^[a-zA-Z0-9]+$/.test(val))
我想執行字符串,以確保至少有3個連續的字母字符以及左右;
111 // false
aaa1 // true
11a // false
bbc // true
1a1aa // false
要強制執行的任何地方3個字母字符,
/(.*[a-z]){3}/i
應該足夠了。
編輯。啊,你編輯了你的問題,說三個字母字符必須是連續的。我也看到你可能想強制執行所有的字符都應該匹配你的「接受」字符之一。然後,先行可能是乾淨的解決方案:
/^(?.*[a-z]{3})[a-z0-9]+$/i
請注意,我用的是不區分大小寫的修飾符/i
爲了避免寫a-zA-Z
。
替代方案。您可以閱讀更多關於lookaround assertions here。但是在這個階段它可能會有點凌亂。下面是您可能會發現更容易分解來講你已經知道一種替代方案:
/^([a-z0-9]*[a-z]){3}[a-z0-9]*$/i
謝謝你這樣一個教育性的答案! – Griff 2013-03-11 14:41:42
+
表示「1次或1次發生」。
{3}
表示「發生3次」。
{3,}
表示「發生3次或更多次」。
+
也可以寫成{1,}
。也可以寫成{0,}
。
我不認爲這回答了問題,它回答了對本身不回答問題的問題的評論。 – 2013-03-11 14:30:39
這應該做的工作:
^([0-9]*[a-zA-Z]){3,}[0-9]*$
它檢查至少3個「零或更多的數字+ 1個阿爾法序列+零或更多的數字。
你想匹配零個或多個數字,然後連續3個字母,然後任何其他數字的數字?
/\d*(?:[a-zA-Z]){3,}\d*/
假設你正在使用JavaScript,請使用此:
/[a-zA-Z]{3,}/
這將在字符串的任何部分匹配至少有三個字符不是至少三個字母。
使用'{3,}'而不是'+' – 2013-03-11 14:26:19
@ka可以在任何字符串中至少匹配三個_characters_而不是至少三個_letters_。 – 2013-03-11 14:28:07
它不起作用111仍然被接受。 – Griff 2013-03-11 14:28:12