【问题标题】:How do I allow only one hyphen (-),only one space( ),only one apostrophe (') in a regular expression如何在正则表达式中只允许一个连字符 (-)、一个空格 ()、一个撇号 (')
【发布时间】:2013-04-05 06:29:29
【问题描述】:

我有一个文本框,可以在其中获取用户的姓氏。如何在正则表达式中只允许一个连字符(-),一个空格(),一个撇号(')

【问题讨论】:

  • 您在大约 20 分钟前提出了 similar 问题。
  • 你的意思是它必须有 3 个中的 1 个吗?或者它只能有三个中的任何一个?或者它只能具有三个中的一个?另外,你知道有些人有多个名字和姓氏,有些人有多个连字符,有些人的名字和姓氏都有撇号,对吧?

标签: c# javascript regex


【解决方案1】:

您可以为要避免的 3 个字符中的每一个使用 negative lookahead

^(?!.*-.*-.*)(?!.*'.*'.*)(?!.*\s.*\s.*)[a-zA-Z- ']+$

【讨论】:

    【解决方案2】:

    我不确定您是否需要正则表达式(除非您特别需要连字符、空格和撇号位于您未指定的字符串中的特定位置)。

    只需逐个字符地遍历字符串并计算连字符、空格和撇号。

    正则表达式非常适合匹配字符模式,并且功能非常强大,但恕我直言,在某些情况下,它们不仅是矫枉过正,而且可能只是适合这项工作的错误工具。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-09
      • 1970-01-01
      • 2019-12-13
      相关资源
      最近更新 更多