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().