首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex表达式不工作吗?

Regex表达式不工作吗?
EN

Stack Overflow用户
提问于 2014-10-08 13:13:33
回答 1查看 92关注 0票数 4

我正在尝试用这个要求构建正则表达式。

要求:

最大长度-5(如果是小数点,则为小数点)

十进制进动-最大2位数(如果是小数数字)。

数字-不需要是十进制数(不是强制性的)

代码:

代码语言:javascript
复制
<script>
function myFunction() {
   var regexp = /^(?!\.?$)\d{0,5}(\.\d{0,2})?$/;
    var num = 12345.52; // i will test here indiffernt ways
    var n = regexp.test(num)
    document.getElementById("demo").innerHTML = n; // returns true or false
}
</script>

输出应该如下所示:

12345.52 ->它应该返回false,因为长度为8 inc点,但它返回true

123456.52 ->假。我知道d{0,5}是在十进制之前找的

12.45 ->真。完美1(长度5,进动2)

12345 ->真的。完美一(长度5,进动-非疯狂)

我希望构建一个regex表达式,以满足上述所有情况。

参考资料:单击此处

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-08 13:21:26

您可以尝试下面的regex,它使用正前瞻断言

代码语言:javascript
复制
^(?=.{1,5}$)\d+(?:\.\d{1,2})?$

演示

解释:

  • ^断言我们正处于起步阶段。
  • (?=.{1,5}$)断言长度必须从1到5。
  • \d+允许一个或多个数字。
  • (?:\.\d{1,2})?可选小数点后的允许位数必须为一两个小数点。
  • $断言我们在行的末尾。
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26257817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档