![](/img/trans.png)
[英]Javascript Regex: find & remove letters that repeat LESS THAN a certain number of times
[英]Javascript Regex: find & REPLACE letters that repeat LESS THAN a certain number of times
最簡單的方法就是最簡單的方法。
[a-zA-Z]
匹配單個 ASCII 字母([a-zA-Z])
是一個捕獲組\\1
是一個反向引用,它告訴我們再次匹配通過再次捕獲組 #1 所匹配的內容\\1*
告訴我們匹配該反向引用零次或多次那么你只需要這個:
function replaceRunsWithLengthLessThan( s, n, r ) {
const replaced = typeof(s) !== "string"
? s
: s.replace( rxSingleLetterRun, m => m.length < n ? r : m )
;
return replaced;
}
const rxSingleLetterRun = /([a-zA-Z])\1*/ig;
可以調用為
const orig = 'aaaa bbb cc d eeeeee'
const repl = replaceRunsWithLengthLessThan( orig, 4, '-');
並產生預期值: aaaa - - - eeeeee
。
編輯注意:如果你想用與跑步長度一樣多的破折號替換短跑,你只需要改變
s.replace( rxSingleLetterRun, m => m.length < n ? r : m )
和
s.replace( rxSingleLetterRun, m => m.length < n ? r.repeat(m.length) : m )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.