接受的正则表达式是什么

what is the regexp to accept

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

我的架构为

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

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

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

修正了撇号、句点和 space 但不知道如何放置连字符。 请让我知道如何解决这个问题。

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

[.....-]

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

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

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

或者放在末尾(不会被错误解析为范围分隔符):

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