如何使用正则表达式替换删除0起始字符?

时间:2018-08-19 01:13:25

标签: javascript regex

我使用此代码替换数字字符,但是当数字以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。

2 个答案:

答案 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">