我正在使用ASP.Net RegularExpressionValidator进行验证。
纯文本
^(a-z|A-Z|0-9)*[^#$%^&*()\']*$
仅字母数字
^[a-zA-Z0-9]*$
仅限数字
^[0-9]*$
我需要使用这些表达与多语言(日语,中文等)很好地工作。
发布于 2012-08-16 16:55:28
使用Unicode properties。
例如:
\p{L}
任何语言的任何类型的字母
在.net中,这些字符速记类是基于\d
的。
在除表意文字以外的任何文字中\p{Nd}
数字0到9
\p{N}
任何脚本中的任何类型的数字字符。例如,允许像"VII“这样的罗马数字
关于您的第一个表达式:Range( 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}*$
https://stackoverflow.com/questions/11983656
复制相似问题