Regex从数字类型输入中替换
Regex replace from number type input
我有一个数字类型的输入,我想防止人们输入除数字之外的任何内容。我发现的例子适用于输入类型的文本字段,但不适用于数字字段。
效果良好:(
<input type="text" onkeyup="this.value=this.value.replace(/[^'d]/,'')">
效果不佳:(
<input type="number" onkeyup="this.value=this.value.replace(/[^'d]/,'')">
在JSFiddle 上自己试试
请帮忙。。。
我刚刚使用JSFiddle进行了一些简单的测试,如果<input type="number" />
元素上有无效输入,则this.value
属性将返回空白。
以下行显示了使用Chrome时的结果:
<input type="number" oninput="alert(this.value)">
JSFiddle演示
事实上,发生这种情况的原因是:
value属性(如果指定且不为空(必须具有值这是一个有效的浮点数。
值净化算法如下:如果元素不是有效的浮点数,然后将其设置为空字符串。
^来自HTML5草稿部分关于数字输入类型的实现
这个问题现在引起了我的兴趣,我想出了一个小办法。
<input type="number" oninput="updateNum(this)">
function updateNum(e)
{
e.select();
e.value = getSelection().toString().replace(/[^'d]/g,'');
}
如果选择在命令之间更改的位置,这可能会有问题。
JSFiddle用于解决
如果您想接受带有小数部分(例如3.14(的数字,请参阅此DEMO
Number: <input type="number" oninput="updateNum(this)" />
function updateNum(e) {
if (isNaN(e.value)) {
e.value = e.value.replace(/[^'d]/g,'');
}
相关文章:
- Cake php表单助手.替换输入值
- 使用简单的角度滤波器来替换输入字符串中某些字符串的所有出现,而不考虑大小写和空格
- 替换输入元素只会在 Chrome 中导致 onchange 事件
- 替换输入字段的文本会移动其位置
- 单击链接并将隐藏字段中的文本插入输入字段超过 1 次,然后替换输入字段中的文本
- JQuery 根据当前文本替换输入文本
- 用另一个动态创建的输入替换输入
- 是否可以替换输入字段中每个字符的颜色
- 在jQuery中,如何用另外两个输入的值替换输入的两个部分
- 替换输入标记之前或之后的文本标签
- 如何替换输入文本字段中的逗号和正斜杠
- 用CSS生成的图像替换输入字段中的文本
- 如何在输入字段的对焦时立即替换输入字段的前导零
- 如何在jquery中用新值替换输入值
- Regexp替换输入字段中的符号
- Javascript正则表达式替换输入表单验证
- 如何替换输入文本框>用
- JavaScript/jQuery Regex用有效字符替换输入字段
- 查找并替换输入字段中的文本
- 替换输入字段's显示