Javascript 将特殊字符转换为普通字符

Javascript 将特殊字符转换为普通字符,javascript,regex,special-characters,Javascript,Regex,Special Characters,我尝试使用javascript-AJAX从XML文件加载城市名称,并最终在它们上获得成功 var region=Ahmadābād,Sūrat,Vadodara,Rājkot,Bhāvnagar,Jāmnagar,Nadiād,Gāndhīnagar,Jūnāgadh,Surendranagar 这是我的输出;在这个输出中,一些字符是非标准的US ASCII字符,我想改为普通字符,如: var region:- Ahmadabad,Surat,Vadodara,Rajkot,Bhavnagar

我尝试使用javascript-AJAX从XML文件加载城市名称,并最终在它们上获得成功

var region=Ahmadābād,Sūrat,Vadodara,Rājkot,Bhāvnagar,Jāmnagar,Nadiād,Gāndhīnagar,Jūnāgadh,Surendranagar
这是我的输出;在这个输出中,一些字符是非标准的US ASCII字符,我想改为普通字符,如:

var region:- Ahmadabad,Surat,Vadodara,Rajkot,Bhavnagar,Jamnagar,Nadiad,Gandhinagar,Junagadh,Surendranagar

我如何才能做到这一点?

这是一个纯javascript解决方案,尽管它不是最佳解决方案,而且可能性能不好:

// create a character map to convert one char to another
var charMap = {
    "ā" : "a",
    "ū" : "u"
};
var region="Ahmadābād,Sūrat,Vadodara,Rājkot,Bhāvnagar,Jāmnagar,Nadiād,Gāndhīnagar,Jūnāgadh,Surendranagar";

// split original string into char array
var chars = region.split('');
// init new array for conversion result
var charsConverted = [];

// convert characters one by one
for(var i = 0; i < chars.length; i++){
    var char = chars[i];
    // this will try to use a matching char from char map
    // will use original if no pair found in charMap
    charsConverted.push( charMap[char] || char);
}

// join array to string
var result = charsConverted.join('');

alert(region);
alert(result);
//创建字符映射以将一个字符转换为另一个字符
var charMap={
“a”:“a”,
“ū”:“u”
};
var region=“Ahmadābād,Sūrat,Vadodara,Rājkot,Bhāvnagar,Jāmnagar,Nadiād,Gāndhīnagar,Jūnāgadh,Surendranagar”;
//将原始字符串拆分为字符数组
var chars=区域分割(“”);
//初始化转换结果的新数组
var charsConverted=[];
//逐个转换字符
对于(变量i=0;i
同样,这只是一个想法,可能需要很多调整

行动守则:


HTH

可能重复为什么要中断名称的拼写?更具建设性的问题是,你为什么认为你需要强迫名字使用20世纪60年代定义的角色剧目。