ruby - 浮点正则表达式?

标签 ruby regex

我正在尝试编写 RegEx 来验证 float 。以下是我到目前为止所做的:

/^[-+]?[1-9]\d{0,2}(\.\d{1,1})?/

在以下情况下该号码有效:

  • 积极或消极
  • 最多 2 位数(十位或百位)
  • 百位不能为0(只能是1-9)
  • 比例最大为 1
  • 十进制值可以是 0 或 5 或根本没有

所以这些数字是有效的,例如:

  • 1.5
  • -1.5
  • 17.5
  • 15
  • -3
  • 30.5

这些数字是无效的,例如:

  • 1.57
  • 3041.5
  • 17.59
  • 915
  • -1.56
  • 05.0

最佳答案

Float(number)(捕获异常以检测解析错误)然后验证 float 怎么样?对于几个属性来说,这比编写正则表达式更容易。如果您需要强制使用 Ruby 接受的语法子集(为什么?),请仅使用正则表达式检查该部分。

关于ruby - 浮点正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9186780/

相关文章:

ruby - 使用 Ruby 的 Net/HTTP 模块,我可以发送原始 JSON 数据吗?

ruby - !foo = 表达式在 Ruby 中合法吗?

ruby - 您将如何简化这个根据内容拆分数组的 ruby​​ 方法?

javascript - 使用jquery捕获字符之间的字符串

ruby-on-rails - Rails 回调在不同环境下表现不同

ruby-on-rails - Ruby on Rails 和 XSS 预防

java - 使用 Java 正则表达式匹配 BMP : it is possible at all? _外部_的一系列 Unicode 代码点

javascript - PHP 正则表达式 (*SKIP)(*F) 在 javascript 中相等

Python RE - finditer 和 findall 的不同匹配

regex - 在 Perl 中如何将字符串拆分为每个包含两个字符的 block ?