javascript - JavaScript + Unicode正規表現

原文 javascript regex unicode character-properties

JavaScriptでUnicode対応の正規表現を使用するにはどうすればよいですか?

たとえば、ASCIIだけでなく、LettersまたはMarksカテゴリの任意のコードポイントと一致する\wに似たものがあり、句読点などの[[P *]]のようなフィルタが必要です。
答え
ES 6の状況
次のECMAScript言語仕様、エディション6には、Unicode対応の正規表現が含まれています。正規表現でu修飾子を使用してサポートを有効にする必要があります。 Unicode-aware regular expressions in ES6を参照してください。
しかし、ES 6が完成し、ブラウザーベンダーの間で広く採用されるまでは、あなたはまだ自分でいます。更新:ES6のUnicode正規表現を同等のES5に変換するa transpiler named regexpuが追加されました。ビルドプロセスの一部として使用できます。 Try it out online.
ES 5以下の状況
JavaScriptはUnicode文字列で動作しますが、Unicode対応の文字クラスを実装しておらず、POSIX文字クラスまたはUnicodeブロック/サブ範囲の概念はありません。

Issues with Unicode in JavaScript regular expressions

ここであなたの期待を確認してください:Javascript RegExp Unicode Character Class tester(編集:元のページがダウンしています、the Internet Archive still has a copy)

Flagrant BadasseryがJavaScript, Regex, and Unicodeに関する記事を掲載しており、この問題に光を当てています。

また、SOのRegex and Unicodeも読んでください。おそらく、独自の「句読文字クラス」を作成する必要があります。

Regular Expression: Match Unicode Block Rangeビルダーをチェックしてください。これにより、指定した任意の数のUnicodeブロックに該当する文字に一致するJavaScript正規表現を作成できます。
私は「一般句読点」と「補足句読点」のサブ範囲に対してちょうどそれをしました、そして結果は私がそれを予想したであろうように単純で簡単です:
 [\u2000-\u206F\u2E00-\u2E7F]


また、拡張機能を備えた代替正規表現エンジンを提供することによりXRegExpをもたらすプロジェクトであるUnicode support to JavaScriptもあります。

そしてもちろん、必読:mathiasbynens.be - JavaScript has a Unicode problem:
関連記事

javascript - バックエンドサービスに同じ呼び出しを行う複数のブラウザースクリプトを処理するには

javascript - angularjsの名前とタイトルに従ってデータをフィルタリングする方法は?

javascript - console.logを呼び出すときにChromeスタックトレースをだましてリダイレクトする方法はありますか?

java - Android-Webview HTMLコード抽出が機能しない(Javascript)

javascript - 他のフレームセットからフレームを隠す

javascript - Snap.svgとjavascriptがキャッチされないSyntaxErrorをスローする

javascript - 入力日付カレンダーを拡張します(ブラウザーネイティブ)

javascript - AngularJSの確認モーダル

javascript - jQueryカーソルを水平方向にDIVで追跡します

javascript - error:areq不正な引数引数 'PanelController'は関数ではなく、未定義です