How to ignore acute accent in a javascript regex match?
I need to match a word like 'César' for a regex like this /^cesar/i
.
Is there an option like /i
to configure the regex so it ignores the acute accents?.
Or the only solution is to use a regex like this /^césar/i
.
Solution 1:
The standard ecmascript regex isn't ready for unicode (see http://blog.stevenlevithan.com/archives/javascript-regex-and-unicode).
So you have to use an external regex library. I used this one (with the unicode plugin) in the past : http://xregexp.com/
In your case, you may have to escape the char é
as \u00E9
and defining a range englobing e, é, ê, etc.
EDIT : I just saw the comment of Alex : you'll find inside the range for the accented equivalent of e.
Solution 2:
You could remove the accents from the string first and test it separately:
var someString = 'César';
var bare = removeDiacritics(someString);
if (/^cesar/i.test(bare)) {
// fail
}
See this answer for a definition of removeDiacritics()
.