我在寻找办法JavaScript
来转换非ASCII
字符串中的字符为与其最接近的等价物,类似于什么PHP
iconv
功能一样。 例如,如果输入字符串被Rånades på Skyttis i Ö-vik
,它应该被转换成Ranades pa skyttis i o-vik
。 我看了一下phpjs
但iconv
不包括在内。
它是可能的,如果因此如何,执行在JavaScript中这种转换?
我在寻找办法JavaScript
来转换非ASCII
字符串中的字符为与其最接近的等价物,类似于什么PHP
iconv
功能一样。 例如,如果输入字符串被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, ''));
更多信息参见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
这是因为iconv
是背后最国际化字符映射转换功能的机编译UNIX工具。
你不会找到它javascript
,除非你访问某些浏览器组件。
编码是文档的属性,因此大多数JavaScript实现只是简单地忽视它。
你所需要的重音串纯JS库。 这将是最好有一个你所需要的特定语言。
该simpliest方式是通过一些转换表,甚至正则表达式的内容替换。
喜欢这里: http://lehelk.com/2011/05/06/script-to-remove-diacritics/
检查这个线程太: 在Javascript中更换变音符号