On Sep 26, [EMAIL PROTECTED] said:
>Does anyone have a short routine for displaying mask on some values and
>displaying the value of the last four? For example, alot of site display
>credit card numbers like xxxx1234 which shows only the last four.
>
>I know how to use the substr but what about replacing the preceding values
>with xxxx?
You could use a regex:
$string = "1234567890";
$string =~ s/.(?=.{4})/x/g;
That means "for each character that is followed by four characters (at
least), replace it with an 'x'". That means that $string will become
"xxxxxx7890". You could also use substr():
substr($string, 0, -4) = "x" x (length($string) - 4);
The right-hand side makes a string of x's as long as the string is, minus
four. So for "1234567890", which has length 10, the right-hand side is a
string of 6 x's, "xxxxxx". The left-hand side gets a substring of $string
starting at the beginning and ending four characters from the end. We can
CHANGE the return value of substr():
$name = "jeff";
substr($name, 0, 1) = "J";
print $name; # Jeff
This means we change all but the last 4 characters of $string to a string
of x's as long as that beginning chunk of string.
You can also put the replacement value as the fourth argument to the
substr() function.
substr($string, 0, -4, "x" x (length($string) - 4));
--
Jeff "japhy" Pinyan [EMAIL PROTECTED] http://www.pobox.com/~japhy/
RPI Acacia brother #734 http://www.perlmonks.org/ http://www.cpan.org/
<stu> what does y/// stand for? <tenderpuss> why, yansliterate of course.
[ I'm looking for programming work. If you like my work, let me know. ]
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]