![](/img/trans.png)
[英]Regex JavaScript - how to check if a string is all letters and then all numbers
[英]Regex to check for 3 same letters in a string?
我需要創建正則表達式,無論順序如何,它都會在字符串中查找 3 個相同的字母。
例子:
'aa2ff333' -> false
'aa2a' -> true
'aaa2' -> true
我試過這個,但它檢查連續的字母:
(.)\1\1
有什么建議嗎?
您可以將此正則表達式與前瞻一起使用:
/([a-zA-Z])(?=(?:.*?\1){2})/
正則表達式詳情:
([a-zA-Z])
:匹配一個字母[a-zA-Z]
並將其捕獲在組 #1 中(?=
: 開始前瞻
(?:.*?\\1){2}
:至少有 2 次出現與捕獲組 #1 相同的字符。 .*?\\1
在 0 個或多個任何字符后匹配反向引用\\1
。 這允許匹配輸入中任何地方的重復。)
: 結束前瞻一種方法是遍歷字符串並計算每個字符的出現次數,然后檢查是否有任何字符出現了 3 次
let threeChars = (str) => { let obj = [...str].reduce((op, inp) => { if (/[az]/i.test(inp)) { op[inp] = op[inp] || 0 op[inp] += 1 } return op }, {}) return Object.values(obj).some(v => v === 3) } console.log(threeChars('aa2ff333')) console.log(threeChars('aa2a')) console.log(threeChars('aaa2'))
PS:-
i
標志使其不區分大小寫v == 3
更改為v >= 3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.