0

我有一个输入字段,我想验证输入是否对多种语言(和数字)有效。

我从网上收集了一些信息,但不知道如何将这些部分组合成一个有效的正则表达式。

这里我找到了一些我需要的范围:

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 中的一个正则表达式(包括数字),以便我可以验证它们是唯一允许的字符?(我需要更多的语言,但如果我需要理解这个概念,然后我可以自己添加更多的 unicode 范围)

4

1 回答 1

2

有适合您的正则表达式类别\p{L},它匹配来自所有已知语言的字母。但遗憾的是 JavaScript 的内置RegExp并不支持它。相反,您可以考虑使用XRegExpUnicode Base plugin

<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 回答