views:

28

answers:

1

Hi,

I'm searching for javascript function to replace French diacritics and came accross this code:

String.prototype.removeDiacritics = function() {
var diacritics = [
    [/[\300-\306]/g, 'A'],
    [/[\340-\346]/g, 'a'],
    [/[\310-\313]/g, 'E'],
    [/[\350-\353]/g, 'e'],
    [/[\314-\317]/g, 'I'],
    [/[\354-\357]/g, 'i'],
    [/[\322-\330]/g, 'O'],
    [/[\362-\370]/g, 'o'],
    [/[\331-\334]/g, 'U'],
    [/[\371-\374]/g, 'u'],
    [/[\321]/g, 'N'],
    [/[\361]/g, 'n'],
    [/[\307]/g, 'C'],
    [/[\347]/g, 'c'],
];
var s = this;
for (var i = 0; i < diacritics.length; i++) {
    s = s.replace(diacritics[i][0], diacritics[i][1]);
}
return s;

}

which works great but I'm wondering where to get those regular expression number from e.g: [/[\300-\306]/g, 'A'] ...

The reason i ask is because i've noticed that the replacing list is missing the ÿ character but I have no idea whats the regular expression to replace ÿ to y.

Thanks!

+3  A: 

Those three digit numbers are in octal, so if you take the unicode value of ÿ and convert it to octal, which is 0377, you will be able to add it to the list:

[/[\377]/g, 'y'], 

Here is a good site to look up the octal values of characters:

octal values of characters

Michael Goldshteyn