javascript で "\p{L}" のようなパターンをネイティブに使用する方法はありますか?
(これは perl 互換の構文だと思います)
まず、Firefox のサポートと Webkit に興味があります。
javascript で "\p{L}" のようなパターンをネイティブに使用する方法はありますか?
(これは perl 互換の構文だと思います)
まず、Firefox のサポートと Webkit に興味があります。
いいえ、\p{..}
どの大きなブラウザでもネイティブにサポートされていません。ただし、XRegExp ライブラリとUnicode プラグインを使用すると、JavaScript で動作します。
いいえ、Javascriptの構文は少し異なります。Unicodeをキャッチするには、のような文字セレクタを使用する必要があります\uXXXX
。ただし、実際には、ページとファイルがUTF-8の場合、範囲内に非ASCII文字を設定する[абвг]
こともできます。
残念だけど違う。通常の構文では文字のセットのみを指定でき、文字と範囲を角かっこで囲みますが、たとえば文字が Unicode 空間全体に散らばり、その間に他の文字があるため、これは扱いにくくなります。
非効率的な回避策があります。Unicode サイトから UnicodeData.txt ファイルを取得し、そのコンテンツを JavaScript コード内にデータとして配置し、解析します。そして、たとえば、文字が文字かどうかを示す gc (General Category) などの Unicode プロパティを含むオブジェクトの配列にデータを含めることができます。しかし、その場合でも、正規表現の構成要素として使用できるものとしてではなく、単純なテストに便利なデータを持っているだけです。
理論的には、データを使用して正規表現を作成できますが、かなり大きくなります。
ここにあるライブラリ:
http://inimino.org/~inimino/blog/javascript_cset
私にとってはうまくいくようで、かなり小さく、他のライブラリから独立しています。