【问题标题】:what is the regexp to accept接受什么正则表达式
【发布时间】:2015-03-31 16:02:25
【问题描述】:

我在 json 请求中有一个姓氏,我需要为 json 构建架构。

我的架构为

        "lastName": {
            "type": "string", 
            "required": true,
            "pattern":"^[a-zA-Z0-9'. ]{1,40}$"
        }

但是我们有缺陷说姓氏可以如下。

姓氏:撇号、连字符、句号(O'Rourke;Smith-Jones;St. Pierre)。

修正了撇号、句号和空格,但不知道如何放置连字符。 请告诉我如何解决此问题。

【问题讨论】:

  • 将这种验证应用于名称有什么意义?我还要争论为什么要分开名字和姓氏。阅读这篇小文章:kalzumeus.com/2010/06/17/…

标签: regex json jsonschema


【解决方案1】:

连字符可以放在列表的末尾,这样可以清楚地表明它不是字符范围:

[.....-]

注意:我不接受名称开头的特殊字符。

【讨论】:

    【解决方案2】:

    用反斜杠转义(然后可以放在正则表达式中的任何位置):

    ^[\-a-zA-Z0-9'. ]
    

    或者放在最后(不会被错误解析为范围分隔符的地方):

    ^[a-zA-Z0-9'. -]
    

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      相关资源
      最近更新 更多