@Pattern(regex = "" ) Spring 验证器

@Pattern(regex = "" ) Spring validator

例如,我想验证一个名称。 名称必须由以“ ”或“-”分隔的单词组成。 示例:"Jean-Luc Melenchon"、"Xavi Hernandez"

如果我的要求正确,您需要一个名称验证器,其规则是确保 每个名称至少包含一个 space 或一个连字符 (-)。你可以使用这个正则表达式:

^.*(\s|-)+.*$
  • (\s|-)+ 表示应该至少有一个 space (\s) 或连​​字符 (-)
  • .* 允许 space
  • 前后任意数量的字符

将成功匹配

Jean-Luc Melenchon
Xavi Hernandez
Lionel Messi
Zlatan Ibrahimovic

不会与以下匹配(因为它们没有 space 或连字符)

Deco
Rivaldo
Kaka
O'Shea

如果这是为了实验室练习,请把自己搞砸。如果要在实际应用程序中使用它,请不要认为您知道什么是有效名称。

看看 PHP Regex for human names

正如 Pascal Martin 在后面所说的那样,

one day or another, your code will meet a name that it thinks is "wrong"... And how do you think one would react when an application tells him "your name is not valid" ?

我试过了,它似乎工作正常

[A-Za-zàâéêèìôùûçÀÂÉÊÈÌÔÙÛÇ']+(\s|\-[A-Z]+)*