0

入力フィールドがあり、入力が複数の言語 (および数字) に対して有効であることを検証したいと考えています。

Web からいくつかの情報を収集しましたが、これらの断片を 1 つの有効な正規表現に結合する方法がわかりませんでした。

ここから、必要な範囲をいくつか見つけました。

0000-007F   Basic Latin
0080-00FF   Latin-1 Supplement
0100-017F   Latin Extended-A
0180-024F   Latin Extended-B

ここから、日本語の範囲を見つけました:

4e00-9fbf, 3040-309f and 30a0-30ff

しかし、それらをJavaScriptで1つの正規表現(数字を含む)に結合して、許可されている唯一の文字であることを検証するにはどうすればよいですか? (より多くの言語が必要ですが、概念を理解する必要がある場合は、Unicode 範囲を自分で追加できます)

4

1 に答える 1

2

既知のすべての言語の文字に一致する正規表現カテゴリ\p{L}があります。しかし残念なことに、JavaScript のビルトインはRegExpサポートしていません。代わりに、Unicode Base pluginXRegExpを使用することを検討できます。

<script src="xregexp.js"></script>
<script src="addons/unicode/unicode-base.js"></script>
<script>
  var unicodeWord = XRegExp("^\\p{L}+$");

  unicodeWord.test("Русский"); // true
  unicodeWord.test("日本語"); // true
  unicodeWord.test("العربية"); // true
</script>

http://xregexp.com/pluginsのコード スニペット

于 2013-07-29T07:52:57.343 に答える