Javascript 非零负十进制数的正则表达式
我正在使用Javascript 非零负十进制数的正则表达式,javascript,regex,Javascript,Regex,我正在使用^-\d*\.?\d+$进行负数匹配。但这接受-0。 我想限制regexp与-0匹配。有人能帮忙吗? 提前谢谢 您可以使用 ^-(?!0*\.?0+$)\d*\.?\d+$ ^^^^^^^^^^^^ 见 (?!0*\.?0+$)如果字符串只包含-,然后是一个表示零的int/float型数字,则负前瞻将导致匹配失败 详细信息: ^-字符串的开头 --连字符 (?!0*\.?0+$)-在当前位置之后,如果以下模式匹配,则匹配失败: 0*-零或更多0s \?-可选的 0+-1或更多
^-\d*\.?\d+$
进行负数匹配。但这接受-0。
我想限制regexp与-0匹配。有人能帮忙吗?
提前谢谢 您可以使用
^-(?!0*\.?0+$)\d*\.?\d+$
^^^^^^^^^^^^
见
(?!0*\.?0+$)
如果字符串只包含-
,然后是一个表示零的int/float型数字,则负前瞻将导致匹配失败
详细信息:
-字符串的开头^
-连字符-
-在当前位置之后,如果以下模式匹配,则匹配失败:(?!0*\.?0+$)
-零或更多0*
s0
-可选的\?
-1或更多0+
s0
-字符串结尾$
-0+位\d*
-可选的\?
-1个或多个数字\d+
-字符串结束$
- 也许正则表达式不是正确的工具
var input = "-1234"; // or whatever
var num = +input;
if( isNaN(num)) throw new Error("Invalid input");
if( num >= 0) throw new Error("Only negative numbers allowed");
// num is a valid negative number. Done.
如果这个数字是-0.234,也就是说,这个数字以零开始,但不是零。你不想得到这个号码吗?我想让那个号码匹配。我不想要任何像-0、-0.000、-00000000这样的匹配。。任何为零的内容都不应匹配。