2013-12-17 39 views
4

我是新來的java腳本編寫者。我寫了一個正則表達式,允許用戶名或電子郵件地址作爲輸入,例如 應該接受6-50字符 不允許空格或空白 應該不允許2 @符號&可以接受多於1個.(點)& _(下劃線)。
這是我的正則表達式。我的正則表達式如何支持諸如中文,日文,法文等多種語言

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

任何一個可以給我一個想法我怎樣才能讓我的正則表達式支持多語言,如西班牙語,中國語,法語等。 非常感謝。

+1

你的正則表達式目前對於法語電子郵件地址失敗了嗎? – Pointy

+4

請勿使用正則表達式來解析電子郵件。 ''爲你做。 –

+4

合法的電子郵件地址也可能超過50個字符。 – Pointy

回答

0

要覆蓋其他語言,可以使用Unicode代碼/範圍作爲特殊字符。

至於日本的例子(使用Perl):

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

此查找所有平假名文本字符串,Unicode編碼的範圍爲:[\ x3041- \ x3096]

所以會發現任何這些字符串:

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

給它上RegexPal例如一試,這樣的:

\u3041 

上述集平假名,會發現:

其他語言也一樣。

相關問題