маскировать все цифры, кроме первых 6 и последних 4 цифр строки (длина меняется)

У меня есть номер карты в виде строки, например:

string  ClsCommon.str_CardNumbe r = "3456123434561234";

Длина этого номера карты может варьироваться от 16 до 19 цифр, в зависимости от требований.

Мое требование заключается в том, что я должен показать первые шесть цифр и последние 4 цифры номера карты и замаскировать другие символы между ними знаком «X».

Я попытался использовать subString и реализовал его отдельно для 16,17,18,19 цифр ..

Я разделяю строку (ClsCommon.str_CardNumber) на 5 строк (str_cardNum1, str_cardNum2, str_cardNum3, str_cardNum4, str_cardNum5 - 4 цифры для каждой строки ... остальные цифры для 5-й строки)

Все строки помещаются в файл ClsCommon. Исходя из этого я реализовал ниже, который работает отлично:

if (ClsCommon.str_CardNumber.Length == 16) {
    txtmskcrdnum.Text = string.Concat(ClsCommon.str_cardNum1, " ", ClsCommon.str_cardNum2.Substring(0, 2), "XX", " ", "XXXX", " ", ClsCommon.str_cardNum4);

}
if (ClsCommon.str_CardNumber.Length == 17) {
    txtmskcrdnum.Text = string.Concat(ClsCommon.str_cardNum1, " ", ClsCommon.str_cardNum2.Substring(0, 2), "XX", " ", "XXXX", " ", "X", ClsCommon.str_cardNum4.Substring(1, 3), " ", ClsCommon.str_cardNum5);
}
if (ClsCommon.str_CardNumber.Length == 18) {
    txtmskcrdnum.Text = string.Concat(ClsCommon.str_cardNum1, " ", ClsCommon.str_cardNum2.Substring(0, 2), "XX", " ", "XXXX", " ", "XX", ClsCommon.str_cardNum4.Substring(2, 2), " ", ClsCommon.str_cardNum5);
}


if (ClsCommon.str_CardNumber.Length == 19) {
    txtmskcrdnum.Text = string.Concat(ClsCommon.str_cardNum1, " ", ClsCommon.str_cardNum2.Substring(0, 2), "XX", " ", "XXXX", " ", "XXX", ClsCommon.str_cardNum4.Substring(3, 1), " ", ClsCommon.str_cardNum5);
}
txtmskcrdnum.Text = ClsCommon.str_CardNumber.PadLeft(ClsCommon.str_CardNumber.Length, 'X').Substring(ClsCommon.str_CardNumber.Length - 4);

Для многократных длин вышеуказанный подход бесполезен.

Мне нужен единый подход, который отображает первые 6 и последние 4 цифры и маскирует другие цифры с помощью X. Конечная строка должна иметь пробел между каждыми 4 цифрами.

Ответы на вопрос(9)

Ваш ответ на вопрос