我的正则表达式如何支持多种语言,如中文,日文,法文等

时间:2013-12-17 14:19:41

标签: javascript regex

我是java脚本的新手。我编写了一个正则表达式,允许用户名或电子邮件地址作为输入,具有一些条件,如 应该接受6-50个字符 不允许空格或空白 不应该允许2 @个符号&可以接受超过1 .(点)& _(下划线)。
这是我的正则表达式。

var regExpPattern = /^(?=.{6,50}$)([\w._]+@?[\w.]*)$/;

任何人都可以告诉我如何让我的正则表达式支持多种语言,如西班牙语,中文,法语等。 非常感谢。

1 个答案:

答案 0 :(得分:0)

要涵盖其他语言,您可以使用Unicode代码/范围作为特殊字符。

作为日语的例子(使用Perl):

if ($text =~ m/[\x{3041}-\x{3096}]/) { print $text; }

这会在文本字符串中找到所有平假名,Unicode代码范围为: [\ x3041- \ x3096]

所以它会在字符串中找到任何这些:

  

ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっ   つづてでとどなにぬねのはばぱひびふぶぷへべほまままみむめもゃやゅゆ   ょよらりるれろゎわををんゕゕゖ゙゚゛゜ゟゟゟゟ

试试RegexPal,例如:

\u3041

在上面的平假名上,会找到:

  

其他语言也一样。