簡體   English   中英

正則表達式-檢測並替換字符串中超過兩位的數字

[英]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.

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