正则表达式为rails中的姓氏或名字

时间:2015-03-28 19:52:36

标签: ruby-on-rails regex

我知道这个问题已经被问到了,但我找不到符合我要求的东西,也适用于rails。我正在寻找一个简单的正则表达式,用于包含以下内容的单词:

  • 字母(无数字)
  • 白色空间
  • 。 (点)或 - (破折号)

2 个答案:

答案 0 :(得分:0)

以下正则表达式允许使用字母,空格,点和破折号:

/[a-z\s.-]/i

您在模型中的验证将是:

validates_format_of :first_name, :with => /[a-z\s.-]/i

答案 1 :(得分:0)

只需添加到Sharvy Ahmed's answer

您也可以在模型中以这种格式表示验证

Regex 定义为常量,然后在first_name验证中引用它。

validates :first_name, format: { with: VALID_NAME_REGEX }

VALID_NAME_REGEX = /[a-z\s.-]/i

位置

/    - Indicates the start of a new character
a-z  - Matches characters in the range 'a' to 'z'
\s   - Matches any whitespace character like tabs, spaces
.    - Matches a '.' character
-    - Matches a '-' character
/i   - Makes the whole expression case insensitive.

仅此而已。

我希望这会有所帮助