符合有效整数或小数号的正则态度(可能是正或负数)



我希望我的extjs textfield只允许数字和小数(sutitve and Natect)。我需要一个正则允许一个可以正面或负数的整数或小数数。应该匹配 -

1)123
2)123.23
3)-123
4)-123.23

不应匹配
1)-123
2)-2323-
3)23.23.23
4)34..34

^-?((0(.[0-9]+)?)|([1-9]+[0-9]*(.[0-9]+)?))$(link)

测试了它,它在

上起作用
0
1
12
123
0.1
1.12
12.0123
-1
-12
-0.1
-1.12
-12.0123
-0

和dosnt上的工作:

--123
-2323-
23.23.23
34..34
^-?(0|([1-9][0-9]*))(.[0-9]+)?$

它不适用于

  • 0123由于领先0是没有意义的
    1. 由于十进制后没有数字
  • .123由于小数前没有数字

https://regex101.com/r/d3q4ti/1尝试一下

尝试此

const regex = /^([-])?d+(.d+)?$/
const validInputs = [123, 123.23, -123, -123.23, '-123.23', '-01.123']
const invalidInputs = ['--123', '-2323-', '23.23.23', '34..34']
for (const item of validInputs) {
  console.log(`test ${item} => ${regex.test(item)}`)
}
console.log('=======================')
for (const item of invalidInputs) {
  console.log(`test ${item} => ${regex.test(item)}`)
}

最新更新