2012-10-25 77 views
4

是否可以創建一個正則表達式來允許非ASCII字母以及拉丁字母,例如中文或希臘字符(例如,允許使用漢語)?正則表達式允許非ASCII和外國字母?

我目前有以下^[\w\d][\w\d_\-\.\s]*$只允許拉丁字母。

+0

使用中國字正則表達式:http://stackoverflow.com/questions/9576384/use-regular -expression-to-match-any-chinese-character-in-utf-8 –

+0

我希望能夠允許所有非拉丁字符。 – Xerxes

+0

你正在使用哪種語言/正則表達式?這是至關重要的信息。 –

回答

5

在.NET中,

^[\p{L}\d_][\p{L}\d_.\s-]*$ 

相當於你的正則表達式,還允許其他Unicode字母。

說明:

\p{L}是Unicode的財產 「信」 的簡寫。

注意事項:I 認爲您希望不允許下劃線作爲初始字符(僅在第二個字符類中存在它的證明)。由於\w包含下劃線,所以你的正則表達式確實允許它。您可能想從我的解決方案中的第一個字符類中刪除它(當然,它包含在而不是中,包括在\p{L}中)。

在ECMAScript中,事情並不那麼容易。你將不得不定義你自己的Unicode字符範圍。幸運的是,一位同行的StackOverflow用戶已經上升到之際,並設計了一個JavaScript的正則表達式轉換器:

https://stackoverflow.com/a/8933546/20670

+0

嗨,它似乎不工作,只允許數字和_。它依賴於.net框架版本?! – Xerxes

+0

你如何使用正則表達式? –

+0

它從資源文件中檢索,並插入到validationexpression =「<%$ H:VT.DimensionNameNoneAscii%>」 – Xerxes

相關問題