接受什么是正则表达式

时间:2015-03-31 16:02:26

标签: regex json jsonschema

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

我的架构为

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

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

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

修正了撇号,句号和空格,但不知道如何输入连字符。 请让我知道如何解决这个问题。

2 个答案:

答案 0 :(得分:1)

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

[.....-]

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

答案 1 :(得分:0)

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

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

或将其放在最后(不能将其错误地解析为范围分隔符):

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