正则表达式开始行故障

时间:2018-02-11 11:44:47

标签: javascript regex

我想简单地将90.000000和-90.000000之间的数字与六个浮点数相匹配。 当我使用这种模式时:

^-?([0-9]|[1-8]\d|90)\.[0-9]{6}

结果:

-83.192292 => Match(True)
83.192292 => Match(True)
90.000000 => Match(True)
-0.000000 => Match(False)
-90.444444 => Match(False)
90.444444 => Match(False)

1 个答案:

答案 0 :(得分:3)

你可以用这个:

^(?!-0\.000000)-?(?:90\.000000|[1-8]?\d\.\d{6})$

它排除零减号(通过负向预测)和范围外的数字(通过单独检查90.0000然后仅允许绝对整数部分<90的值。

确保在测试多行文字时使用m修饰符。我还添加了行尾锚点($),以防你想在行号后面有更多字符(甚至可能是数字)时排除匹配。