簡體   English   中英

字符串的JS正則表達式包含固定數量的字母

[英]JS Regex for a string contains fixed number of letters

假設我需要在一個字符串中至少包含5個字母,而不要求它們是后續字母。 下面的正則表達式檢查后續字母

[A-Za-z]{5,}

所以, “AAAAA” - 真實的 ,但“aaa1aa” - 假的

離開序列條件的正則表達式是什么,上面的兩個字符串都將作為true傳遞。

您可以使用.replace(/[^A-Za-z]+/g, '')刪除所有非字母字符,然后運行正則表達式:

 var strs = ["aaaaa", "aaa1aa"]; var val_rx = /[a-zA-Z]{5,}/; for (var s of strs) { console.log( val_rx.test(s.replace(/[^A-Za-z]+/g, '')) ); } 

否則,您也可以使用一步解決方案,例如

 var strs = ["aaaaa", "aaa1aa"]; var val_rx = /(?:[^a-zA-Z]*[a-zA-Z]){5,}/; for (var s of strs) { console.log( s, "=>", val_rx.test(s) ); } 

在線觀看第二個正則表達式演示 (?:[^a-zA-Z]*[a-zA-Z]){5,}匹配5個或更多連續出現的0個或多個非字母字符( [^a-zA-Z]* )與字母字符。

允許在字母之間使用非字母字符:

(?:[A-Za-z][^A-Za-z]*){5,}

如果您只需要使用正則表達式,則可以使用以下選項:

 const check = str => /^(.*[A-Za-z].*){5}/.test(str); console.log(check("aaaaa")); console.log(check("aa1aaa")); console.log(check("aa1aa")); 

w表示正則表達式中的字母數字,可以的:\\ w {5,}

[a-zA-Z0-9]{5,}

像這樣? 還是您是說它需要成為忽略數字的正則表達式? 因為上述內容也將匹配aaaa1

暫無
暫無

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

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