将非ASCII字符(变音符号,重音符号)转换为最接近的ASCII码(创build子弹)

我在JavaScript寻找方法来将string中的非ASCII字符转换为最接近的字符,类似于PHP iconv函数。 例如,如果input的string是Rånades på Skyttis i Ö-vik ,它应该被转换为Ranades pa skyttis i o-vik 。 我曾看过phpjsiconv不包括在内。

是否有可能在JavaScript中执行这种转换,如果是这样的话?

我发现的最简单的方法是:

 var str = "Rånades på Skyttis i Ö-vik"; var combining = /[\u0300-\u036F]/g; console.log(str.normalize('NFKD').replace(combining, '')); 

这是因为iconv是国内大多数国际字符映射转换function背后的本地编译UNIX实用程序。

除非您访问某个浏览器组件,否则不会在javascriptfind它。

编码是文档的属性,所以大多数JavaScript实现只是简单地解雇它。

你需要一个纯粹的js库来处理不重叠的string。 最好能为你需要的特定语言提供一个。

最简单的方法是通过一些翻译表,甚至正则expression式replace。

像这里: http : //lehelk.com/2011/05/06/script-to-remove-diacritics/

检查这个线程: 取代在Javascript中的变音符号