正则表达式只检查一个小数点

时间:2018-05-15 15:04:09

标签: javascript regex

我有以下正则表达式,只检查html

中类型编号标记的一个小数点
^-?[0-9]*\\.?[0-9]*$

但这个常规未能检查我是否在最后放了小数,例如12.12. 我还需要添加什么来检查这个

3 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:"performance counters process object"

答案 1 :(得分:0)

最后允许.的最简单方法是在\.?之前设置$。此外,双\看起来不对(除非你需要它在你正在使用它的上下文中转义\):

^-?[0-9]*\.?[0-9]*\.?$

但请注意,您的正则表达式不需要任何实际数字,因此会匹配一些非数字,例如.-.和(使用我的编辑)-..以上正则表达式也会匹配一个空字符串!

您需要将正则表达式更改为需要数字,或者考虑其他可能不存在的地方。

答案 2 :(得分:0)

我认为您的正则表达式可以使用+而非最后*量词来轻松修复:

^-?[0-9]*\.?[0-9]+$

试验:



const regex = /^-?[0-9]*\.?[0-9]+$/gm;
console.log('regex.test?')
console.log('12 = ' + regex.test('12'));
console.log('12. = ' + regex.test('12.'));
console.log('12.1 = ' + regex.test('12.1'));
console.log('12.12. = ' + regex.test('12.12.'));
console.log('-1 = ' + regex.test('-1'));
console.log('-1. = ' + regex.test('-1.'));
console.log('-1.2 = ' + regex.test('-1.2'));
console.log('-.12 = ' + regex.test('-.12'));
console.log('-. = ' + regex.test('-.'));
console.log('-. = ' + regex.test('-'));
console.log('. = ' + regex.test('.'));




Demo