11

PHPのIconvと同じように、Javascriptを使用してUTF-8の文字を最も近いASCII文字に「変換」する方法を考えています。

例:

üはuになります
óはoになります

置換を使用したくないのは、a)完全な文字セットが必要であり、これは多くの作業であり、b)完全な文字セットを取得するのは困難であり、確信が持てないためです。 1つか2つ欠けている場合。

4

3 に答える 3

16

私が見つけた最も簡単な方法:

var str = "üó";
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

于 2014-05-13T14:24:27.330 に答える
11

@Pointyが言ったように、あなたの唯一のオプションは辞書に従って文字をマップ/置換することです。

これは本当に便利です:https ://github.com/backbone-paginator/backbone.paginator/blob/a579796a30e583c4dfa09e0a86e4abd21e0b5b56/plugins/diacritic.js

于 2012-11-09T14:24:41.960 に答える
1

JSへのiconvのポートがあります:https ://www.npmjs.com/package/iconv

var iconv = new Iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE');
iconv.convert('ça va が'); // "ca va "
于 2020-06-28T07:20:22.917 に答える