我正在尝试编写一个正则表达式来匹配任意长度字符的正负浮点。我试过这个
/^-|[0-9\ ]+$/
然而,这仍然是错误的,例如它会匹配“46.0”和“-46.0”,但也会匹配“4-6.0”,这是我不想要的。
目前我正在使用此
/^-|[0-9][0-9\ ]+$/
这解决了第一个问题,但是这将匹配“-4g”之类的东西,这也是不正确的。
我可以使用什么表达式来匹配负浮点数和正浮点数?
答案 0 :(得分:5)
为什么不以下?
parseFloat(x) === x
如果你真的想要一个正则表达式,那么entire pages on the internet专门用于完成这项任务。他们的结论是:
/^[-+]?[0-9]*\.?[0-9]+$/
或
/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/
如果你想允许指数表示法。
答案 1 :(得分:-1)
/^[-+]?[0-9]+(?:\.[0-9]+)?(?:[eE][-+][0-9]+)?$/
这也允许指数部分。如果您不想这样,请使用
/^[-+]?[0-9]+(?:\.[0-9]+)?$/
希望这有帮助。
答案 2 :(得分:-1)
我的可能性较小,可选您可以将{1,3}
限制删除至最少1个和最多3个数字部分,并将其替换为+
以对数字进行限制。
/^[\-]?\d{1,3}\.\d$/

答案 3 :(得分:-1)
试试这个......
我相信,它在javascript中工作。
var pattern = new RegExp(" ^ - ?[0-9。] * $");
if(pattern.test(valueToValidate)) {
return true;
} 其他 {
return false;
}