Javascript 忽略重音字符的string.search()?

Javascript 忽略重音字符的string.search()?,javascript,regex,Javascript,Regex,我需要像对待非重音字符一样对待重音字符。这是我的代码: var re = new RegExp(string, 'i'); if(target.search(re) == 0) { } 它当前会忽略角色的大小写,如何也忽略角色是否带有重音?我认为您必须先删除重音,然后再执行RegExp 您可以使用我发现的以下函数: 功能条带(str) { var rExps=[ {re://[\xC0-\xC6]/g,ch:'A'}, {re://[\xE0-\xE6]/g,ch:'a'}, {re://[\

我需要像对待非重音字符一样对待重音字符。这是我的代码:

var re = new RegExp(string, 'i');
if(target.search(re) == 0) { }

它当前会忽略角色的大小写,如何也忽略角色是否带有重音?

我认为您必须先删除重音,然后再执行RegExp
您可以使用我发现的以下函数:

功能条带(str)
{
var rExps=[
{re://[\xC0-\xC6]/g,ch:'A'},
{re://[\xE0-\xE6]/g,ch:'a'},
{re://[\xC8-\xCB]/g,ch:'E'},
{re://[\xE8-\xEB]/g,ch:'e'},
{re://[\xCC-\xCF]/g,ch:'I'},
{re://[\xEC-\xEF]/g,ch:'i'},
{re://[\xD2-\xD6]/g,ch:'O'},
{re://[\xF2-\xF6]/g,ch:'o'},
{re://[\xD9-\xDC]/g,ch:'U'},
{re://[\xF9-\xFC]/g,ch:'u'},
{re://[\xD1]/g,ch:'N'},
{re://[\xF1]/g,ch:'n'}];

对于(var i=0,len=rExps.length;i我认为您必须先删除重音,然后再执行RegExp.
您可以使用我发现的以下函数:

功能条带(str)
{
var rExps=[
{re://[\xC0-\xC6]/g,ch:'A'},
{re://[\xE0-\xE6]/g,ch:'a'},
{re://[\xC8-\xCB]/g,ch:'E'},
{re://[\xE8-\xEB]/g,ch:'e'},
{re://[\xCC-\xCF]/g,ch:'I'},
{re://[\xEC-\xEF]/g,ch:'i'},
{re://[\xD2-\xD6]/g,ch:'O'},
{re://[\xF2-\xF6]/g,ch:'o'},
{re://[\xD9-\xDC]/g,ch:'U'},
{re://[\xF9-\xFC]/g,ch:'u'},
{re://[\xD1]/g,ch:'N'},
{re://[\xF1]/g,ch:'n'}];

对于(var i=0,len=rExps.length;i使用库符号


使用库semplice


尝试先从字符串中删除重音符号,然后传递一个正则表达式..在任何情况下都应该有效。此问题或类似问题已被问过多次。尝试先从字符串中删除重音符号,然后传递一个正则表达式..在任何情况下都应该有效。此问题或类似问题已被问过多次。这是一个失败的弱解决方案有许多您可能不期望的重音字符。有关如何正确处理重音的信息,请参阅。这是一个很弱的解决方案,可能无法处理许多您可能不期望的重音字符。有关如何正确处理重音的信息,请参阅。
function stripVowelAccent(str)
{
 var rExps=[
 {re:/[\xC0-\xC6]/g, ch:'A'},
 {re:/[\xE0-\xE6]/g, ch:'a'},
 {re:/[\xC8-\xCB]/g, ch:'E'},
 {re:/[\xE8-\xEB]/g, ch:'e'},
 {re:/[\xCC-\xCF]/g, ch:'I'},
 {re:/[\xEC-\xEF]/g, ch:'i'},
 {re:/[\xD2-\xD6]/g, ch:'O'},
 {re:/[\xF2-\xF6]/g, ch:'o'},
 {re:/[\xD9-\xDC]/g, ch:'U'},
 {re:/[\xF9-\xFC]/g, ch:'u'},
 {re:/[\xD1]/g, ch:'N'},
 {re:/[\xF1]/g, ch:'n'} ];

 for(var i=0, len=rExps.length; i<len; i++)
  str=str.replace(rExps[i].re, rExps[i].ch);

 return str;
}
var latin_map = {
  'Á': 'A', // LATIN CAPITAL LETTER A WITH ACUTE
  'Ă': 'A', // LATIN CAPITAL LETTER A WITH BREVE
...
  'ᵥ': 'v', // LATIN SUBSCRIPT SMALL LETTER V
  'ₓ': 'x', // LATIN SUBSCRIPT SMALL LETTER X
};


String.prototype.latinise = function() {
   return this.replace(/[^A-Za-z0-9]/g, function(x) { return latin_map[x] || x; })
};