我正在使用ASP.Net RegularExpressionValidator进行验证。
纯文字
^(a-z|A-Z|0-9)*[^#$%^&*()\']*$
仅限字母数字
^[a-zA-Z0-9]*$
仅限数字
^[0-9]*$
我需要使用这些表达式才能正常使用多语言(日语,中文等)。
答案 0 :(得分:2)
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}*$