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