将非ASCII字符(变音符号,重音符号...)转换为最接近的ASCII等效符号(段塞创建)

Max*_*Max 24 javascript ascii converter character-encoding slug

我正在寻找JavaScriptASCII字符串中的非字符转换为最接近的等价物的方法,类似于PHP iconv函数的作用.例如,如果输入字符串是Rånades på Skyttis i Ö-vik,则应将其转换为Ranades pa skyttis i o-vik.我看了看phpjsiconv不包括在内.

是否可以在JavaScript中执行此类转换,如果是这样的话?

小智 20

我找到的最简单的方法:

var str = "Rånades på Skyttis i Ö-vik";
var combining = /[\u0300-\u036F]/g; 

console.log(str.normalize('NFKD').replace(combining, ''));
Run Code Online (Sandbox Code Playgroud)

有关参考,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize

  • 像 ø 或 æ 这样的挪威语字符怎么样? (3认同)
  • [ECMAScript 6](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize).截至今天,它仅受最新的Chrome和Firefox alpha支持.但是很有希望. (2认同)