如何在这个正则表达式中匹配负数?这个正则表达式可以很好地匹配正数,但我希望它也可以匹配负数,例如-10,-125.5等。
^[0-9]\d*(\.\d+)?$
谢谢
^[+-]?\d{1,18}(\.\d{1,2})?$
只需添加一个0或1的标记:
^-?[0-9]\d*(.\d+)?$
匹配数字的正则表达式,可选小数点,可选负号:
^-?(\d*\.)?\d+$;
适用于负整数、小数、带小数的负数
对于所有我能想到的情况,/\d/
都能按预期工作:
let ns = {
regex: {
num: /\d/
}
}
for (let i of [-2, -1, 0, 1, 2, 'one', 'negative one', Math.PI, Math.E, (42 * -1), (42 / -1), '-1', '0', '1', 1.01, -1.01, .1, -.1, Math.sqrt(42)]) {
console.log(ns.regex.num.test(i) + ': ' + i);
}
如果你想要更多有关 Math
的乐趣,可以查看https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math
只针对负数,这很完美。
^-\d*\.?\d+$
^(-?\d+\.)?-?\d+$
允许:
23425.23425
10.10
100
0
0.00
-100
-10.10
10.-10
-10.-10
-23425.23425
-23425.-23425
0.234