我希望我的ExtJS文本字段只允许数字和小数(正数和负数)。我需要一个正则表达式来允许整数或十进制数,可以是正数或负数。 应该匹配 -
1)123
2)123.23
3)-123
4)-123.23
不应匹配
1) - 123
2)-2323-
3)23.23.23
4)34..34
答案 0 :(得分:2)
^-?((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
答案 1 :(得分:1)
^-?(0|([1-9][0-9]*))(\.[0-9]+)?$
它不能与
一起使用答案 2 :(得分:-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)}`)
}