Regex -数字,仅允许负数,但只有一个前导零

qzwqbdag  于 2023-02-05  发布在  其他
关注(0)|答案(2)|浏览(103)

我一直在努力寻找一种方法,既允许只使用数字,也可以是负数,而且只允许一个前导零。
目标示例:0、12345、-555错误示例:-0,01235,-012
到目前为止,我有以下内容,但似乎不能在否定字符中正常工作。如果我先键入,之后什么都不能键入,但它应该允许1 - 9:/^([-0]|[1 - 9]\d *)$/
我也试过了,但没有成功:/^[-]?(0|[1 - 9]\d *)$/
任何帮助都将不胜感激。

  • ---updated code----//可以输入0,但不能输入表示负数的连字符。如果我旋转?:0|- ?成为?:-|0?我可以输入连字符,但不能输入零。
    功能(事件){
evt = (evt) ? evt : window.event;
            let expect = evt.target.value.toString().trim() + evt.key.toString();
           
            if (!/^(?:0|-?[1-9][0-9]*)$/.test(expect)) {
                evt.preventDefault();
            } else {
                return true;
            }
0md85ypi

0md85ypi1#

让我们保持简单:

/^(?:0|-?[1-9][0-9]*)$/

说明:

^       # Start of string
(?:     # Start of non-capturing group
 0      # Match either a zero (and nothing else)
|       # or
 -?     # an optional -
 [1-9]  # a digit between 1 and 9
 [0-9]* # 0 or more further digits
)       # End of group
$       # End of string
jdgnovmf

jdgnovmf2#

请尝试以下操作:(参见here

\b0\b|-?\b(?!^0)[1-9]+[0-9]*\b

相关问题