用零 0 替换 alphabets/spaces 的正则表达式
Regular Expression to replace alphabets/spaces with zero 0
<input type="number" min="1" onkeyup="this.value=this.value.replace(/[^\d]/,'')"name="Qty[]" placeholder="Qty" value="0">
这是我的 html 输入,使用这个正则表达式我可以替换所有字母。输入被消隐。
虽然我试过像这样输入零
onkeyup="this.value=this.value.replace(/[^\d]/,'0')"
但它不会用零代替它。上面提供的表达式也替换了整个字符串,而我想输入 '1234a'
它只是删除 'a' 。所以任何人都可以告诉我如何用 0 替换整个字母表或者只是从输入中删除字母表。
示例输入:
1234a
预期产出:
0 或 1234
之所以如此,是因为您无法使用 this.value
获得 input[type=number]
的原始值,除非它是一个数字。在任何其他情况下,它将 return 一个空字符串。参见 How to get the raw value an <input type="number"> field?
相反,您可以使用文本输入类型,即
<input type="text" min="1" onkeyup="this.value=this.value.replace(/[^\d]/g,'0')"name="Qty[]" placeholder="Qty" value="0">
这是fiddle:http://jsfiddle.net/jcs2zh5e/
此外,您还缺少全局修饰符,如果用户 pastes
某些值进入该字段,这会导致正则表达式不替换所有字母而只替换第一个字母。为了解决这个问题,添加了 g
.
<input type="number" min="1" onkeyup="this.value=this.value.replace(/[^\d]/,'')"name="Qty[]" placeholder="Qty" value="0">
这是我的 html 输入,使用这个正则表达式我可以替换所有字母。输入被消隐。 虽然我试过像这样输入零
onkeyup="this.value=this.value.replace(/[^\d]/,'0')"
但它不会用零代替它。上面提供的表达式也替换了整个字符串,而我想输入 '1234a' 它只是删除 'a' 。所以任何人都可以告诉我如何用 0 替换整个字母表或者只是从输入中删除字母表。
示例输入: 1234a
预期产出: 0 或 1234
之所以如此,是因为您无法使用 this.value
获得 input[type=number]
的原始值,除非它是一个数字。在任何其他情况下,它将 return 一个空字符串。参见 How to get the raw value an <input type="number"> field?
相反,您可以使用文本输入类型,即
<input type="text" min="1" onkeyup="this.value=this.value.replace(/[^\d]/g,'0')"name="Qty[]" placeholder="Qty" value="0">
这是fiddle:http://jsfiddle.net/jcs2zh5e/
此外,您还缺少全局修饰符,如果用户 pastes
某些值进入该字段,这会导致正则表达式不替换所有字母而只替换第一个字母。为了解决这个问题,添加了 g
.