// string_soundex(str)
// Returns the Soundex code of some string
var map, c, i, j;
argument0 = string_upper(argument0);
map[1] = 'BFPV'; map[2] = 'CGJKQSXZ';
map[3] = 'DT'; map[4] = 'L';
map[5] = 'MN'; map[6] = 'R';
for (i = string_length(argument0); i > 1; i -= 1) {
c = string_char_at(argument0, i);
for (j = 1; j <= 6; j += 1)
if (string_pos(c, map[j]) > 0)
argument0 = string_insert(string(j), string_delete(argument0, i, 1), i);
}
for (i = 1; i <= 6; i += 1)
argument0 = string_replace_all(argument0, 2*string(i), string(i));
return string_char_at(argument0, 1) +
string_copy(string_digits(argument0) + '000', 1, 3);
Categories: String handling
There are no comments to display.
You must be signed in to post comments.