首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegEx表示必须包含小数点的数字。

问RegEx表示必须包含小数点的数字。
EN

Stack Overflow用户
提问于 2019-04-25 19:16:04
回答 2查看 1.1K关注 0票数 2

我正在尝试编写一个正则表达式来验证一个十进制数。

  1. 这个数字必须包含小数点。
  2. 小数点右边必须有一个数字0-9 .
  3. 小数点左边可能有最大5位数,但它们不能以零开始,除非它本身有一个零。

允许:

  • 0.1 (第一个数字只能是零,如果后面是小数点)
  • 10345.0 (小数位左侧最多5位,小数位右侧必须有1位)

不允许:

  • 0(无小数位)
  • 10 (无小数位)
    1. (小数位右边没有数字)

  • 。(小数位两边没有数字)
  • .1 (小数位左边没有数字)

此正则表达式验证小数位之前的内容。

代码语言:javascript
复制
^(?:[1-9][0-9]{0,4}|0)$

此正则表达式验证小数位之后的内容。

代码语言:javascript
复制
^[0-9]{1}+$

我只是不知道如何将两者结合起来,以便小数位是强制性的。

我该如何解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-25 19:22:36

据我所知,这是可行的。

^(?:[1-9]\d{0,4}|0)\.\d$

扩容

代码语言:javascript
复制
 ^                             # BOS
 (?:
      [1-9] \d{0,4}                 # 1-5 digits, must not start with 0
   |                              # or,
      0                             # 0
 )
 \. \d                         # decimal point and 1 digit
 $                             # EOS
票数 4
EN

Stack Overflow用户

发布于 2019-04-25 19:30:15

那应该能行

​

代码语言:javascript
复制
const r = /^(?:[1-9]\d{0,4}|0)\.\d+/

const arr = ['0', '1', '1.2', '1.', '1.123', '0123.1', '123.123', '1234.1', '12345.12345678', '123456.123', '0.12'];

arr.forEach((val) => {
  console.log(val, r.test(val));
})

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55856225

复制
相关文章

相似问题

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