我们如何使用ASP.Net RegularExpressionValidator进行多语言支持?

时间:2012-08-16 08:51:55

标签: c# asp.net regex

我正在使用ASP.Net RegularExpressionValidator进行验证。

纯文字

^(a-z|A-Z|0-9)*[^#$%^&*()\']*$ 

仅限字母数字

^[a-zA-Z0-9]*$ 

仅限数字

^[0-9]*$ 

我需要使用这些表达式才能正常使用多语言(日语,中文等)。

1 个答案:

答案 0 :(得分:2)

使用Unicode properties

e.g:

\p{L}来自任何语言的任何信件

\d一个数字,在.net中,这些字符速记类是基于Unicode的。

\p{Nd}除表意文字脚本外的任何脚本中的数字0到9

\p{N}任何脚本中的任何数字字符。例如允许像“VII”这样的罗马数字

关于你的第一个表达式:范围(a-z部分)只能在字符类中使用。因此,(a-z|A-Z|0-9)部分字面上匹配“a-z”,“A-Z”或“0-9”。

您可以将第一个表达式更改为

^[\p{L}\d]*[^#$%^&*()\']*$

你的第二个可能是

^[\p{L}\d]*$

^[\p{L}\p{Nd}]*$

和最后一个

^\d*$

^\p{Nd}*$