比较来自世界各地的卖家的域名和 IT 服务价格

Regex 用于电话号码的屏蔽替换模板

我是新的b。 regex
我有一个电话号码 regex pattern as /?\d{3}/?-? *\d{3}-? *-?\d{4}

我试图伪装电话号码只显示最后一个 4 数字。

我使用这个功能 Regex.Replace/"/123/ 556-7890 ", "/?\d{3}/?-? *\d{3}-? *-?\d{4}", "#"/

谁能没有 - 帮助我,替换模板将是什么。

我需要出去,像 . 输入可能是 XML 或者 JSON

输入

PhoneNumber> /123/ 556-7890 PhoneNumber>

出口

PhoneNumber>/XXX/ XXX-7890 PhoneNumber>

输入

PhoneNumber> 123 556 7890 PhoneNumber>

出口

PhoneNumber>XXX XXX 7890 PhoneNumber>

输入

PhoneNumber> /123/ 556- 7890 PhoneNumber>

出口

PhoneNumber>/XXX/ XXX- 7890 PhoneNumber>
已邀请:

知食

赞同来自:

您可以使用 regex 比较任何未在后者内的数字 4 线末尾的数字并更换它
X

:


\d/?!\d{0,3}$/


解释

:


\d

- 匹配数字和...


/?!\d{0,3}$/

- 如果在线的末尾,无法匹配 0 到 3 数字。


https://regex101.com/r/nJ2vY5/2
-eversion. regex 还有这个
http://ideone.com/pC9Adj
-eversion. C# :


var data = new string[] {"/123/ 556-7890", "123 556 7890", "/123/ 556- 7890"};
foreach /var s in data/ {
Console.WriteLine/Regex.Replace/s, @"\d/?!\d{0,3}$/", "X"//;


结果:


/XXX/ XXX-7890
XXX XXX 7890
/XXX/ XXX- 7890


UPDATE 展示如何使用 YOUR regex 与我的相结合

你只需要用你的 regex, 要以所需格式匹配电话号码,并使用MINE伪装符合性评估程序内的数字:


var data = "I have this /123/ 556-7890 phone number, followed with 123 556 7890, and /123/ 556- 7890.";
var res = Regex.Replace/data, @"\/?\d{3}\/?-? *\d{3}-? *-?\d{4}",
x => Regex.Replace/x.Value, @"\d/?!\d{0,3}$/", "X"//;
Console.WriteLine/res/;



http://ideone.com/1hiJ4a
IDEONE

NOTE

什么
@"\/?\d{3}\/?-? *\d{3}-? *-?\d{4}\b"

或者
@"\/?\d{3}\/?-? *\d{3}-? *-?\d{4}/?!\d/"

可能是检索电话号码的最佳模板,因为最后一个 4 数字不能遵循符号 word/non-digit.

莫问

赞同来自:

如果它总是相同的数字数量,您是否需要进行更换? 当然,只需采取最后四位数字并放在他们面前
/XXX/ XXX-

, 你会得到同样的结果吗?


string masked = "/XXX/ XXX-" + input.Substring/input.Length - 4/;


显然,你还必须使用你的原创 regex, 首先确保这是一个有效的电话号码。

冰洋

赞同来自:

试试吧


/\d//[// -]*//\d//[// -]*//\d//[// -]*//\d//[// -]*//\d//[// -]*//\d//[// -]*//\d+/


替换


x\2x\4x\6x\8x\10x\12\13


https://regex101.com/r/sJ3eF4/4
-版本

输入


Input
PhoneNumber> /123/ 556-7890 PhoneNumber>

Output PhoneNumber>/XXX/ XXX-7890 PhoneNumber>

Input
PhoneNumber> 123 556 7890 PhoneNumber>

Output PhoneNumber>XXX XXX 7890 PhoneNumber>

Input
PhoneNumber> /123/ 556- 7890 PhoneNumber>

Output PhoneNumber>/XXX/ XXX- 7890 PhoneNumber>


出口


Input
PhoneNumber> /xxx/ xxx-7890 PhoneNumber>

Output PhoneNumber>/XXX/ XXX-7890 PhoneNumber>

Input
PhoneNumber> xxx xxx 7890 PhoneNumber>

Output PhoneNumber>XXX XXX 7890 PhoneNumber>

Input
PhoneNumber> /xxx/ xxx- 7890 PhoneNumber>

Output PhoneNumber>/XXX/ XXX- 7890 PhoneNumber>

八刀丁二

赞同来自:

你能拯救最后一个 4 数字S.
\d{4}$

, 然后模拟以前的代码? :/

喜特乐

赞同来自:

嘿检查此功能只需给您想要伪装为函数的输入数据的电话号码,它将返回伪装字符串。


function maskPhoneNumber/phoneNumber/ {

var regularExpresion = /\/?\d{3}\/?-? *\d{3}-? *-?\d{4}/g, // regular expression to test phone numbers
stringArray,
maskString,
lastString;

// Check if given input matches the phone number pattern
if/regularExpresion.test/phoneNumber// {

// split phone number to an array of characters to manipulate string
stringArray = phoneNumber.split/""/;

/*
* splice the array after reversing so that last 4 digits are seperated
* Now stringArray will have last 4 digits and maskString will have remaining characters
*
*/
maskString = stringArray.reverse//.splice/4/;

// reverse and join the array to get last 4 digits without any change
lastString = stringArray.reverse//.join/""/;

// now replace the remaining characters where digits are present with "X" and then join the array
// concat masked string with last 4 digits to get the required format
phoneNumber = maskString.reverse//.join/""/.replace//\d/g,"X"/ + lastString;
}

return phoneNumber;
}

要回复问题请先登录注册