我一直在努力寻找一种方法,既允许只使用数字,也可以是负数,而且只允许一个前导零。
目标示例: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;
}
2条答案
按热度按时间0md85ypi1#
让我们保持简单:
说明:
jdgnovmf2#
请尝试以下操作:(参见here)