在JavaScript/Govy中使用正则表达式屏蔽手机号码



我正在尝试使用replaceAll屏蔽手机号码掩蔽应该像这个

+1(123)456-7890 ----> +1(2**)4**-**78

+11234567890 -----> +12**4****78

+1-123-456-7890 --->+1-2**-4**-**78

我尝试使用代码:

test.replaceAll("\d(?!\d{0,3}$)", "*")

但它屏蔽了除最后4位之外的所有数字。

您可以使用正则表达式

(+1[(-]?)d(d)d([)-]?d)d{2}([)-]?)(d{2})d{2}

匹配整个字符串并用替换字符串

$1$2**$3**$4**$5

演示

Javascript的正则表达式引擎执行以下操作。

(+1[(-]?) # match '+1' opt. followed by '(' or '-' in cap grp 1
d         # match a digit (discard)
(d)       # match a digit in cap grp 2
d         # match a digit (discard)
([)-]?d)  # match a digit opt. preceded by ')' or '-' in cap grp 3
d{2}      # match 2 digits (discard)
([)-]?)    # optionally match ')' or '-' in cap grp 4
(d{2})    # match 2 digits in cap grp 5
d{2}      # match 2 digits (discard)

最新更新