mask all digits except first 6 and last 4 digits of a string( length varies )

前端 未结 9 902
无人及你
无人及你 2021-01-01 14:26

I have a card number as a string, for example:

string  ClsCommon.str_CardNumbe r = \"3456123434561234\";

The length of this card number can

9条回答
  •  清酒与你
    2021-01-01 14:36

    This will work with any card number length:

    var cardNumber = "3456123434561234";
    
    var firstDigits = cardNumber.Substring(0, 6);
    var lastDigits = cardNumber.Substring(cardNumber.Length - 4, 4);
    
    var requiredMask = new String('X', cardNumber.Length - firstDigits.Length - lastDigits.Length);
    
    var maskedString = string.Concat(firstDigits, requiredMask, lastDigits);
    var maskedCardNumberWithSpaces = Regex.Replace(maskedString, ".{4}", "$0 ");
    

提交回复
热议问题