将非ASCII字符(变音符号,重音符号)转换为最接近的ASCII码(创build子弹)
我在JavaScript
寻找方法来将string中的非ASCII
字符转换为最接近的字符,类似于PHP
iconv
函数。 例如,如果input的string是Rånades på Skyttis i Ö-vik
,它应该被转换为Ranades pa skyttis i o-vik
。 我曾看过phpjs
但iconv
不包括在内。
是否有可能在JavaScript中执行这种转换,如果是这样的话?
我发现的最简单的方法是:
var str = "Rånades på Skyttis i Ö-vik"; var combining = /[\u0300-\u036F]/g; console.log(str.normalize('NFKD').replace(combining, ''));
这是因为iconv
是国内大多数国际字符映射转换function背后的本地编译UNIX实用程序。
除非您访问某个浏览器组件,否则不会在javascript
find它。
编码是文档的属性,所以大多数JavaScript实现只是简单地解雇它。
你需要一个纯粹的js库来处理不重叠的string。 最好能为你需要的特定语言提供一个。
最简单的方法是通过一些翻译表,甚至正则expression式replace。
像这里: http : //lehelk.com/2011/05/06/script-to-remove-diacritics/
检查这个线程: 取代在Javascript中的变音符号