Rails 5使用常规表达式格式验证

时间:2018-04-20 06:33:57

标签: ruby-on-rails regex

我想用正则表达式验证数字字段 -

REGULAR_EXPRESSION_VALUE = ?
validates :current, allow_blank: true, format: {with: REGULAR_EXPRESSION_VALUE}

除了正数或负数以及浮点数

实施例

10(除外)

10.15(除外)

-10(除外)

-10.15(除外)

测试(不是除外)

3 个答案:

答案 0 :(得分:2)

您可以使用以下正则表达式来验证号码。 我使用java编写代码,你可以相应地进行转换。

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

WebDriverWait(self.selenium, 10).until(EC.element_to_be_clickable((By.XPATH, "//form[@id='confirmForm']//input[@class='center-block btn btn-danger']"))).click()
#or
WebDriverWait(self.selenium, 10).until(EC.element_to_be_clickable((By.XPATH, "//form[@id='confirmForm']//input[@class='center-block btn btn-danger']"))).submit()

答案 1 :(得分:1)

拉维的答案有很好的正则表达式。这是代码

/\A[-+]?[0-9]*\.?[0-9]+\z/

Rails更喜欢使用\ A或\ z而不是^或$

This is reason why

答案 2 :(得分:0)

根据此答案(regular expression-to allow negative and positive floating point num),您可以使用此正则表达式:

/^[-+]?[0-9]*\.?[0-9]+$/

我建议你阅读一些文档:https://www.regular-expressions.info/floatingpoint.html

我想你需要使用字符串而不是浮点类型吗? 如果您可以在数据库中使用数字格式,则可以使用:http://guides.rubyonrails.org/active_record_validations.html#numericality