【问题标题】:Regular expression to validate name in .NET multilingual web application在 .NET 多语言 Web 应用程序中验证名称的正则表达式
【发布时间】:2010-04-12 10:24:41
【问题描述】:

如何编写正则表达式来验证多语言 Web 应用程序中的名称字段,我想验证非英语语言的名称字段,例如西班牙语或德语,我们需要确保没有人输入数字或特殊字符。我正在使用 .NET 2.0

我相信我们不能对非英语语言使用如下表达方式。

^[a-zA-Z]{1,20}$

任何帮助将不胜感激!

我得到了这个正则表达式,当我使用 Regex Builder 时它可以工作,但是当我在实际的 Web 应用程序中尝试它时它会失败:

^\p{L}[\p{L}\p{Pd}\x27]*\p{L}$

【问题讨论】:

  • 怎么了? Ç被匹配?
  • 简短回答:不要。地球上有一个绰号为“16 号公共汽车站”的人,您将阻止他们访问您的站点!来源:news.bbc.co.uk/1/hi/7522952.stm。因此,您将对域施加与现实世界中的实际限制不匹配的任意限制。为什么还需要验证呢?
  • @Martin:这很有见地!感谢分享链接,我一直反对这个,但现在我有一个参考:D
  • 像这样毫无意义的验证只会添加更多代码,而这是您必须测试的代码。如果某人的名字中有数字,会发生什么?理查德三世?
  • 使用 ^[A-Za-z]{0,7}$ ,因为此时匹配的组合比世界上的人还多。另外,它适用于我的名字和姓氏。

标签: c# .net multilingual


【解决方案1】:

使用\w 表示字母。它是多语言友好的

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-11
相关资源
最近更新 更多