[英]regex - detect and replace more then two digits in string
字符串中一旦有兩個以上的數字,我只想替換它們。 例:
允許:
bla 22 bla bla
應該更換:
bla 234 bla 8493020348 bla
至
bla *** bla ********** bla
確切的數字無關緊要-僅顯示1-2位數字,如果顯示的數字多於2位,則應將其替換。
這是我已經嘗試過的方法,但是它總是替換整個字符串,而不僅是數字。...此外,如果接受2位數字,后來又有第三位數字被觸發。
var regex = /^(?:\D*\d){3}/g;
str = str.replace(regex, "**");
所以這行不通:
bla 12 and so on 123
它將變為:
**
但我希望它是這樣的:
bla 12 and so on ***
提前非常感謝您!!
一種解決方案是將回調函數傳遞給String.prototype.replace()
並使用String.prototype.repeat()
放入正確數量的星號:
string = string.replace(/\d{3,}/g, (v) => '*'.repeat(v.length));
完整代碼段:
const string = 'bla 22 bla 234 bla 8493020348 bla'; const result = string.replace(/\\d{3,}/g, (v) => '*'.repeat(v.length)); console.log(result); // "bla 22 bla *** bla ********** bla"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.