2015-03-31 94 views
0

我在json请求中有一个姓氏,我需要为json构建模式。什么是正则表达式接受

我有模式作为

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

但我们得到的缺陷说lastnames可以如下。

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

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

+0

将这种验证应用于名称有什么意义?我也会争论为什么单独的名字和姓氏。给这篇小文章阅读:http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/ – 2015-03-31 16:21:45

回答

0

与反斜线符号退出(它随后可在正则表达式的任何位置):

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

或将其放置在端部(其中,它不能被错误地解析为范围分离器):

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

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

[.....-] 

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