Rails Ruby 中的正则表达式
Regular Expression in Ruby on Rails
我需要创建一个正则表达式来验证一个人的名字和名字。第二名是可选的,因为有些人没有第二名。 space字符可以在两个名字之间,但不能是字符串的结尾
example
"Juan Perez" is valid
"Juan Perez " is invalid because there is a space character the end of the string
您可以使用以下使用可选组的正则表达式。
^[A-Za-z]+(?:\s[A-Za-z]+)?$
如果 space 后跟一个或多个字母,(?:\s[A-Za-z]+)?
可选组将进行匹配。如果只有一个 space 存在,它将不匹配字符串。并且它还断言最后必须有一个字母表。
更新:
如果用户名不仅包含名字,还包含中间名、姓氏...那么您可以使用下面的正则表达式。 *
重复前一个标记零次或多次,其中 ?
在标记之后( 不是 *
或 +
)将打开以前的标记作为可选标记。
^[A-Za-z]+(?:\s[A-Za-z]+)*$
不需要重复字符的方法怎么样class:
^\b(\s?[[:alpha:]]+)+$
我需要创建一个正则表达式来验证一个人的名字和名字。第二名是可选的,因为有些人没有第二名。 space字符可以在两个名字之间,但不能是字符串的结尾
example
"Juan Perez" is valid
"Juan Perez " is invalid because there is a space character the end of the string
您可以使用以下使用可选组的正则表达式。
^[A-Za-z]+(?:\s[A-Za-z]+)?$
如果 space 后跟一个或多个字母,(?:\s[A-Za-z]+)?
可选组将进行匹配。如果只有一个 space 存在,它将不匹配字符串。并且它还断言最后必须有一个字母表。
更新:
如果用户名不仅包含名字,还包含中间名、姓氏...那么您可以使用下面的正则表达式。 *
重复前一个标记零次或多次,其中 ?
在标记之后( 不是 *
或 +
)将打开以前的标记作为可选标记。
^[A-Za-z]+(?:\s[A-Za-z]+)*$
不需要重复字符的方法怎么样class:
^\b(\s?[[:alpha:]]+)+$