我想用正则表达式验证一个数字字段-
喜欢
REGULAR_EXPRESSION_VALUE = ?
validates :current, allow_blank: true, format: {with: REGULAR_EXPRESSION_VALUE}
正数或负数以及浮点数除外
实例
10(除)
10.15(例外)
-10(除)
-10.15(例外)
测试(不例外)
您可以使用以下正则表达式来验证数字。我是用java写代码的,你可以相应的转换。
public static Boolean isNumber(String item) {
String pattern = "^-?[0-9]\\d*(\\.\\d+)?$";
return item.matches(pattern);
}
拉维的回答有很好的正则表达式。这是你的代码
/\A[-+]?[0-9]*\.?[0-9]+\z/
Rails更喜欢使用\A或\z而不是^or$
这就是原因
根据这个答案(正则表达式-允许负浮点数和正浮点数),你可以使用这个正则表达式:
/^[-]?[0-9]*\.?[0-9]$/
我建议你读一些文件:https://www.regular-expressions.info/floatingpoint.html
我想您需要使用字符串而不是float类型,对吗?如果可以在数据库中使用数字格式,则可以使用:http://guides.rubyonrails.org/active_record_validations.html#numericality