我有一个正则表达式验证器,在ASP.Net更改中禁用了客户端验证。用于此验证器的正则表达式如下所示,它正在验证Product Description
多行文本框中的输入。
Expression="^[\\p .,;'\-(0-9)\(\)\[\]]+$"
此ASP.Net应用程序的文化是web配置中指定的中文。
<globalization uiCulture="zh" culture="zh-CHT" />
以下对同一ASP.Net页面中Product Description
文本框的输入始终失败。我试图匹配其中任何一个:中文langauge字符或句号或逗号或分号或单引号或数字或圆形/方括号。
问题:正则表达式中导致此输入文本失败的内容是什么?如何更改它以满足匹配要求?
(1)降低庫存過程
(2)增加了吞吐量(1)降低庫存過程
(2)增加了吞吐量(1)降低庫存過程
(2)增加了吞吐量(1)降低庫存過程
(2)增加了吞吐量
答案 0 :(得分:3)
在.NET正则表达式中,在服务器端工作的那个,你可以使用Unicode categories。
^[\p{L}\p{M}\p{N}\s\p{P}]+$
请参阅demo
因此,字符类匹配:
\p{L}
- Unicode字母\p{M}
- 变音符号\p{N}
- 数字\s
- 空白\p{P}
- 标点符号。请注意,这些Unicode类别不会在您的Englsh UI文化验证发生的客户端工作。你可以在那里使用你的固定表达式:
^[a-zA-Z .,;'\-0-9()\[\]]+$
请参阅demo