apply text mask
От | Andy Colson |
---|---|
Тема | apply text mask |
Дата | |
Msg-id | 4B217BA5.1020904@squeakycode.net обсуждение исходный текст |
Ответы |
Re: apply text mask
|
Список | pgsql-general |
I need to apply arbitrary masking to a string (think displaying a phone number). I searched around but didnt find anything and wondered if there was such a thing. I had some perl code that already did it, so it was easy to make it into a stored proc. I'll paste it below. use it like: select applyMask('(000) 000-0000', '1235551313'); returns: (123) 555-1313 So this email is two fold. 1) is there something already built in that does this? 2) if not, here's one in plperl you can use if you like. -- zero is the replace character, everything else is copied literally create or replace function applyMask(text, text) returns text as $$ my($mask, $src) = @_; my $srcAt = 0; my $srcLen = length($src); my $result = ''; for my $i (0..length($mask)-1) { my $mchar = substr($mask, $i, 1); if ($mchar eq '0') { if ($srcAt >= $srcLen) { $result .= ' '; } else { $result .= substr($src, $srcAt, 1); $srcAt++; } } else { $result .= $mchar; } } return $result; $$ language plperl; -Andy
В списке pgsql-general по дате отправления: