正则表达式用0替换字母/空格

时间:2015-01-30 05:30:12

标签: html regex html5 validation

<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

1 个答案:

答案 0 :(得分:4)

之所以如此,是因为除非是数字,否则您无法使用input[type=number]获取this.value的原始值。在任何其他情况下,它将返回一个空字符串。见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">

这是小提琴:http://jsfiddle.net/jcs2zh5e/

另外,如果用户pastes某些值进入字段,那么你错过了全局修饰符,这会导致正则表达式不能替换所有字母和第一个字母。要解决这个问题,请添加g