【问题标题】:regex equal or greater than the number 3正则表达式等于或大于数字 3
【发布时间】:2014-11-08 09:41:32
【问题描述】:

我在网上搜索了一段时间没有任何成功。如果有人能解决这个问题或至少为我指明正确的方向,我将不胜感激。

我需要一个执行以下操作的正则表达式模式:

  • 等于或大于数字 3

  • 不得使用小数

  • 不能允许负数

我正在使用foundation 5 abide.js 来验证我的表单,这需要一个正则表达式模式来进行高级验证。 这是验证价格输入字段所必需的。

【问题讨论】:

  • 为什么是正则表达式?你有 JS。
  • 仅正则表达式?更容易转换为数字并检查您的约束
  • 正则表达式无法计算,所以必须用字符和字符串表示“大于3”。
  • 另外,你指定了最小值,那么最大值呢? 12348712983470 是有效价格吗?
  • 我喜欢 OP 选择性地忽略问题的方式。

标签: javascript php regex validation


【解决方案1】:

正如您在 cmets 中看到的,正则表达式不是处理数字的合适工具。但是你可以使用这种模式:

^(?:[3-9]|[12]\d)\d*$

注意:如果要允许前导零,只需在开头添加0*即可:

^0*(?:[3-9]|[12]\d)\d*$ 

【讨论】:

【解决方案2】:

你可以使用这个模式^(?![012]$)\d+$
Demo

这是另一个前导零^(?!0*[012]$)\d+$
Demo

【讨论】:

  • @KarolyHorvath,请解释一下为什么它是“不正确的”?
  • @KarolyHorvath 只是说不正确并没有帮助,请发布失败的案例而不是说“请不要投票”
  • @alphabravo:它是前导零(示例在我的第一条评论中)。当您在我的第二条评论后修复它时,我不知道您为什么要这样做(嗯,我有,但是...)注意:删除评论,因为它现在不相关。
  • @KarolyHorvath 回应您的评论:“我不知道您为什么要这样做”,您不知道我为什么要这样做??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
  • 2017-04-15
  • 1970-01-01
  • 2012-01-07
相关资源
最近更新 更多