Ruby on rails 为什么数字验证允许+;象征?

Ruby on rails 为什么数字验证允许+;象征?,ruby-on-rails,Ruby On Rails,我正在尝试向“手机号码”字段添加验证。我不希望用户在此字段中输入除整数以外的任何内容。因此,我使用了以下方法: validates :mobile, numericality: { only_integer: true } 当我在字段中只输入加号时,就会立即显示错误。但是,如果输入+123或紧跟在加号之后的任何其他数字,则将保存该条目而不会引发错误。如何确保只接受整数?您可以按照以下步骤验证字段: validates :mobile, format: { with: /\A\d+\z/ }

我正在尝试向“手机号码”字段添加验证。我不希望用户在此字段中输入除整数以外的任何内容。因此,我使用了以下方法:

validates :mobile, numericality: { only_integer: true }

当我在字段中只输入加号时,就会立即显示错误。但是,如果输入+123或紧跟在加号之后的任何其他数字,则将保存该条目而不会引发错误。如何确保只接受整数?

您可以按照以下步骤验证字段:

validates :mobile, format: { with: /\A\d+\z/ }
但是:为什么不允许在手机号码中使用
+
-
和空格?如果允许它们匹配,请参阅主题:、和