我使用此代码替换数字字符,但是当数字以0开头时,例如“ 000001111”或“ 0000000”,则0会出现在前面。
我想替换0开头的数字,如何解决我的代码? 当所有输入均为0时,例如“ 00000000”,则仅保留一个0;当所有输入为“ 000234”时,则保留234。
我的代码:
<input id="text_target_value" maxlength="11" class="text-right number" type="text" onkeyup="value=value.replace(/[^\d]/g,'')";">
我只想修复onkeyup。
答案 0 :(得分:3)
您不需要正则表达式。就像下面的示例一样使用Number
函数;
function relpacing($this) {
$this.value = Number($this.value);
}
<input id="text_target_value" maxlength="11" class="text-right number" type="number" onkeyup="relpacing(this)">
答案 1 :(得分:1)
尝试在您的[^\d]
和
^0+(?!$)
如果字符串由全零组成,则它将匹配前导零,但不匹配最终零。另外,最好使用Javascript而不是使用内联属性正确附加处理程序:
document.querySelector('#text_target_value').onkeyup = function() {
this.value = this.value.replace(/[^\d]+|^0+(?!$)/g, '');
}
<input id="text_target_value" maxlength="11" class="text-right number" type="text">