16

JavaScript インタープリターは、解釈しているソース コードが既に正規化されていると想定しているという印象を受けます。正規化とは正確には何ですか?ソースのプレーンテキスト表現が変更されるため、テキスト エディターにはできません。正規化を行う「プリプロセッサ」はありますか?

4

4 に答える 4

16

いいえ、ECMAScript 5 に従って JavaScript で自動的に使用される、または JavaScript で使用できる Unicode 正規化機能はありません。

例えば試してみてください:

<script type="text/javascript">
    var a= 'café';          // caf\u00E9
    var b= 'café';          // cafe\u0301
    alert(a+' '+a.length);  // café 4
    alert(b+' '+b.length);  // café 5
    alert(a==b);            // false
</script>

更新: ECMAScript 6 では、JavaScript 文字列の Unicode 正規化が導入されます。

于 2011-10-14T21:25:14.263 に答える
12

を使用している場合node.jsは、unormこのためのライブラリがあります。

https://github.com/walling/unorm

于 2011-12-11T15:56:52.357 に答える
1

@bobince の回答を更新しました。

var cafe4= 'caf\u00E9';
var cafe5= 'cafe\u0301';


console.log (
  cafe4+' '+cafe4.length,                  // café 4
  cafe5+' '+cafe5.length,                  // café 5
  cafe4 === cafe5,                         // false
  cafe4.normalize() === cafe5.normalize()  // true
);
于 2018-01-06T18:53:18.593 に答える