-1

我是新手regex,我需要一个正则表达式来表示 -180 到 180 整数之间的数字或浮点数,最多 6 位小数

4

2 回答 2

1

请注意,正则表达式无法验证数字是否实际上在您给定的范围之间 - 这应该由您的业务逻辑处理。

^-?\d{0,3}(\.\d{0,6})?$

读取数字、用 JavaScript 解析并以这种方式验证它可能是一个更好的解决方案:

http://jsfiddle.net/4dqqh/

function isValid(numStr) {
    var float = parseFloat(numStr);
    return Math.abs(float) <= 180 && float.toFixed(6) - float == 0
}

console.log(isValid('-123.23323')); // true
console.log(isValid('-183.23323')); // false
console.log(isValid('-183.233233424')); // false
于 2013-04-09T14:46:34.687 回答
0

您可以检查该值是否可以转换为您需要的范围和精度内的数字,但正则表达式不是用于此目的的工具。

function numbercheck180(s){
    var n= !isNaN(n= s*1e6)? Math.round(n)/1e6:-181;
    return (n<180 && n>-180 && n+''=== s)
}


numbercheck180('-179.123456')  true
numbercheck180('179.123456')  true
numbercheck180('179.1234561')  false
numbercheck180('-179.1234561')  false
numbercheck180('-181')  false
numbercheck180('180.00001')  false
于 2013-04-09T15:07:38.283 回答