正则表达式用于必须包含小数点的数字

时间:2019-04-25 19:16:04

标签: javascript regex

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

  1. 数字必须包含小数点。
  2. 小数点右边必须有一个数字[0-9]。
  3. 小数点左边最多可以有5位数字,但除非以零为零,否则它们不能以零开头。

允许:

  • 0.1(如果后跟小数位,则第一位只能为零)
  • 10345.0(小数点左边最多5位,小数点右边最多1位)

不允许:

  • 0(无小数位)
  • 10(无小数位)
    1. (小数点右边没有数字)
  • 。 (小数点两侧没有数字)
  • .1(小数点左边没有数字)

此正则表达式验证小数点后的内容

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

此正则表达式验证小数点后的内容

^[0-9]{1}+$

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

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:5)

据我所知,这可行

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

扩展

 ^                             # BOS
 (?:
      [1-9] \d{0,4}                 # 1-5 digits, must not start with 0
   |                              # or,
      0                             # 0
 )
 \. \d                         # decimal point and 1 digit
 $                             # EOS

答案 1 :(得分:0)

应该可以

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));
})

答案 2 :(得分:0)

This RegEx可能会验证您的输入:

^(\d{1,5}\.\d{1,})$

,您可以简单地使用 $ 1 调用它。

enter image description here