Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用正则表达式格式化ssn_C#_Asp.net_Regex - Fatal编程技术网

C# 使用正则表达式格式化ssn

C# 使用正则表达式格式化ssn,c#,asp.net,regex,C#,Asp.net,Regex,您好,我需要c夏普中的正则表达式以xxx-xx-6789格式显示SSN。i、 e 123456789应在文本字段中显示为xxx-xx-6789。我现在使用的代码是 string SSN = "123456789"; Regex ssnRegex = new Regex("(?:[0-9]{3})(?:[0-9]{2})(?:[0-9]{4})"); string formattedSSN = ssnRegex.Replace(SSN, "XXX-XX-${last}"); 屏蔽ssn xxx-

您好,我需要c夏普中的正则表达式以xxx-xx-6789格式显示SSN。i、 e 123456789应在文本字段中显示为xxx-xx-6789。我现在使用的代码是

string SSN = "123456789";
Regex ssnRegex = new Regex("(?:[0-9]{3})(?:[0-9]{2})(?:[0-9]{4})");
string formattedSSN = ssnRegex.Replace(SSN, "XXX-XX-${last}");

屏蔽ssn xxx-xx-6789的正确Reg表达式是什么?

您在替换字符串中将
last
用作命名组,而没有在模式中指定它

按如下方式更新模式,现有代码应能正常工作:

(?:[0-9]{3})(?:[0-9]{2})(?<last>[0-9]{4})
此外,由于您只关心最后4位数字,因此您可以选择匹配5个数字,后跟4个数字,而不是将其分成3组:

^(?:[0-9]{5})(?<last>[0-9]{4})$
string originalSSN=Convert.ToString(“123-456-789”).PadLeft(9,'0');
int maskDigit=6;
字符串maskSSN=originalSSN.Substring(originalSSN.Length-maskDigit,maskDigit);
if(Regex.IsMatch(maskSSN),(-)(-)(-)(-){
int i=maskDigit;
while(Regex.Replace(maskSSN),(-)(-)(-)(-)(-)(-),“”)。长度1){
maskSSN=originalSSN.Substring(originalSSN.Length-maskDigit-(ssnArray.Length-1),maskDigit+(ssnArray.Length-1));
}
}
maskSSN=maskSSN.PadLeft(9,#’);

SSN屏蔽的通用代码

    string originalSSN = Convert.ToString("123-456-789").PadLeft(9, '0');
        int maskDigit = 6;
        string maskSSN = originalSSN.Substring(originalSSN.Length - maskDigit, maskDigit);            
        if (Regex.IsMatch(maskSSN, "(—)|(–)|(-)"))
        {
            int i = maskDigit;
            while (Regex.Replace(maskSSN, "(—)|(–)|(-)", "").Length < maskDigit)
            {
                i++;
                maskSSN = originalSSN.Substring(originalSSN.Length - i, i);
            }

            string[] ssnArray = Regex.Split(maskSSN, "(—)|(–)|(-)", RegexOptions.ExplicitCapture);
            if (ssnArray.Length > 1)
            {
                maskSSN = originalSSN.Substring(originalSSN.Length - maskDigit - (ssnArray.Length - 1), maskDigit + (ssnArray.Length - 1));
            }

        }


        maskSSN = maskSSN.PadLeft(9, '#');
string originalSSN=Convert.ToString(“123-456-789”).PadLeft(9,'0');
int maskDigit=6;
字符串maskSSN=originalSSN.Substring(originalSSN.Length-maskDigit,maskDigit);
if(Regex.IsMatch(maskSSN),(-)(-)(-)(-)
{
int i=maskDigit;
while(Regex.Replace(maskSSN),(-)(-)(-)(-)(-)(-),“”)。长度1)
{
maskSSN=originalSSN.Substring(originalSSN.Length-maskDigit-(ssnArray.Length-1),maskDigit+(ssnArray.Length-1));
}
}
maskSSN=maskSSN.PadLeft(9,#’);

这个漂亮的小功能可以屏蔽罐头盒和SSN,怎么样

public static string MaskSSN(string originalSSN)
    {
        if (originalSSN.Length < 5) return originalSSN;
        var trailingNumbers = originalSSN.Substring(originalSSN.Length - 4);
        var leadingNumbers = originalSSN.Substring(0, originalSSN.Length - 4);
        var maskedLeadingNumbers = Regex.Replace(leadingNumbers, @"[0-9]", "X");
        return maskedLeadingNumbers + trailingNumbers;
    }
publicstaticstringmaskssn(stringoriginalssn)
{
如果(originalSSN.Length<5)返回originalSSN;
var trailingNumbers=原始序列号子串(原始序列号长度-4);
var leadingNumbers=原始序列号子串(0,原始序列号长度-4);
var maskedLeadingNumbers=Regex.Replace(leadingNumbers,@“[0-9]”,“X”);
返回maskedLeadingNumbers+trailingNumbers;
}
所以“123-45-6789”变成了“XXX-XX-6789” “12-1234567”变为“XX-XXX4567”。

字符串格式为SSN=“XXX-XX-”+SSN.子字符串(SSN.长度-4,4);
string originalSSN = Convert.ToString("123-456-789").PadLeft(9, '0');
int maskDigit = 6;
string maskSSN = originalSSN.Substring(originalSSN.Length - maskDigit, maskDigit);            
if (Regex.IsMatch(maskSSN, "(—)|(–)|(-)")) {
    int i = maskDigit;
    while (Regex.Replace(maskSSN, "(—)|(–)|(-)", "").Length < maskDigit) {
        i++;
        maskSSN = originalSSN.Substring(originalSSN.Length - i, i);
    }

    string[] ssnArray = Regex.Split(maskSSN, "(—)|(–)|(-)", RegexOptions.ExplicitCapture);
    if (ssnArray.Length > 1) {
        maskSSN = originalSSN.Substring(originalSSN.Length - maskDigit - (ssnArray.Length - 1), maskDigit + (ssnArray.Length - 1));
    }
}

maskSSN = maskSSN.PadLeft(9, '#');
    string originalSSN = Convert.ToString("123-456-789").PadLeft(9, '0');
        int maskDigit = 6;
        string maskSSN = originalSSN.Substring(originalSSN.Length - maskDigit, maskDigit);            
        if (Regex.IsMatch(maskSSN, "(—)|(–)|(-)"))
        {
            int i = maskDigit;
            while (Regex.Replace(maskSSN, "(—)|(–)|(-)", "").Length < maskDigit)
            {
                i++;
                maskSSN = originalSSN.Substring(originalSSN.Length - i, i);
            }

            string[] ssnArray = Regex.Split(maskSSN, "(—)|(–)|(-)", RegexOptions.ExplicitCapture);
            if (ssnArray.Length > 1)
            {
                maskSSN = originalSSN.Substring(originalSSN.Length - maskDigit - (ssnArray.Length - 1), maskDigit + (ssnArray.Length - 1));
            }

        }


        maskSSN = maskSSN.PadLeft(9, '#');
public static string MaskSSN(string originalSSN)
    {
        if (originalSSN.Length < 5) return originalSSN;
        var trailingNumbers = originalSSN.Substring(originalSSN.Length - 4);
        var leadingNumbers = originalSSN.Substring(0, originalSSN.Length - 4);
        var maskedLeadingNumbers = Regex.Replace(leadingNumbers, @"[0-9]", "X");
        return maskedLeadingNumbers + trailingNumbers;
    }