我是 Java 脚本的新手。我写了一个正则表达式,它允许用户名或电子邮件地址作为某些条件的输入,例如
应接受 6-50 个字符
不允许空格或空白
不应允许 2 个 @
符号并且可以接受超过 1 个 .
(点)和 _
(下划线)。
这是我的正则表达式。
var regExpPattern = /^(?=.{6,50}$)([\w._]+@?[\w.]*)$/;
谁能告诉我如何让我的正则表达式支持多种语言,如西类牙语、中文、法语等。 非常感谢。
最佳答案
要涵盖其他语言,您可以使用特殊字符的 Unicode 代码/范围。
以日语为例(使用 Perl):
if ($text =~ m/[\x{3041}-\x{3096}]/) { print $text; }
这会找到文本字符串中的所有平假名,Unicode 代码范围为:[\x3041-\x3096]
所以它会在字符串中找到以下任何一个:
ぁ あ ぃ い ぅ う ぇ え ぉ お か が き ぎ く ぐ け げ こ ご さ ざ し じ す ず せ ぜ そ ぞ た だ ち ぢ っ つ づ て で と ど な に ぬ ね の は ば ぱ ひ び ぴ ふ ぶ ぷ へ べ ぺ ほ ぼ ぽ ま み む め も ゃ や ゅ ゆ ょ よ ら り る れ ろ ゎ わ ゐ ゑ を ん ゔ ゕ ゖ ゙ ゚ ゛ ゜ ゝ ゞ ゟ
尝试一下 RegexPal例如,这个:
\u3041
在上面的一组平假名中,会发现:
ぁ
其他语言也是如此。
关于javascript - 我的正则表达式如何支持中文、日语、法语等多种语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20636552/