masque tous les chiffres sauf les 6 premiers et les 4 derniers chiffres d'une chaîne( de longueur variable )

J'ai un numéro de carte en tant que chaîne de caractères, par exemple:

string  ClsCommon.str_CardNumbe r = "3456123434561234";

La longueur de ce numéro de la carte peut varier de 16 à 19 chiffres, selon l'exigence.

Mon exigence est que je dois montrer les six premiers chiffres et les 4 derniers chiffres d'un numéro de carte et masque les autres personnages entre les deux, avec le caractère 'X'.

J'ai essayé d'utiliser subString et mis en œuvre séparément pour 16,17,18,19 chiffres..

Je scinde une chaîne(ClsCommon.str_CardNumber) à 5 cordes (str_cardNum1, str_cardNum2, str_cardNum3, str_cardNum4, str_cardNum5 - 4 chiffres pour chaque chaîne..chiffres restants pour la 5e chaîne)

Toutes les chaînes sont placées dans ClsCommon fichier.
Basé sur que j'ai mis en place ci-dessous, qui fonctionne parfaitement:

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);

Pour plusieurs longueurs, l'approche ci-dessus n'est pas utile.

Je veux une approche unique qui affiche les 6 premiers et les 4 derniers chiffres et des masques d'autres chiffres avec X.
Le final de la chaîne doit avoir un espace entre chaque groupe de 4 chiffres.

OriginalL'auteur Kartiikeya Baleneni | 2015-06-23