当输入type="number"时,regex验证是否有效?
Does regex validation work when input type="number"?
当在输入字段上使用 type="number"
时,regex验证似乎不起作用。
<input type="number" step="any" min="0" max="24" value="0">
使用 step, min, max
的新的基于浏览器的验证按预期工作。然而,这是不一致的跨浏览器?
如何使一个数字字段验证使用正则表达式?
如果有人有信息,我也对区分数字和文本字段的其他因素感兴趣。
指出我发现检查空字符串导致验证触发如果 number字段的条件不满足
数字字段执行自己的验证,如果它包含非数字字符,则该值将自动删除,直到给出正确的值。您可以通过console.log(value)
看到这一点。
所以你也可以检查空字符串
function check(value, msg) {
var valid = ((value != '') && /^'d*'.?'d*$/.test(value));
if (valid) {
document.getElementById(msg).style.display = "none";
} else {
document.getElementById(msg).style.display= "inline";
}
return valid;
}
http://jsfiddle.net/EkL3k/6/RegEx不能工作,因为返回值是一个数字,而不是一个字符串。当您强制返回值为字符串格式时,它会"按预期"工作:
var valid = /^'d*'.?'d*$/.test(String(value));
您可能需要阅读如何获取原始值和场吗?因为它表明您没有来验证type=number
输入。
添加此代码并为您的输入添加id。
$(document).ready(function() {
$("#txtboxToFilter").keydown(function (e) {
// Allow: backspace, delete, tab, escape, enter and .
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
// Allow: Ctrl+A
(e.keyCode == 65 && e.ctrlKey === true) ||
// Allow: home, end, left, right
(e.keyCode >= 35 && e.keyCode <= 39)) {
// let it happen, don't do anything
return;
}
// Ensure that it is a number and stop the keypress
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
});
});
http://codepen.io/anon/pen/IDEGu 相关文章:
- 正在验证8个真/假复选框或复选框中的2个
- 借助asp.net验证或java脚本对多个文本进行验证
- jQuery自定义验证比较多个输入的序列
- 使用html中的外部javascript进行数据验证
- 如何使用jquery Validation验证Formspread
- jquery中的文本框验证
- 在验证和发送邮件后更改联系人表单的 html
- 代码不会验证
- 铬:“;未捕获的语法错误:意外的标记:"
- JS验证ajax返回的html中的表单数据
- 同步调用,直到用户通过angular验证为访问者
- 带有加号的电话号码验证(可选)
- 解析javascript表单验证器
- 两位数的月份日期验证
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- "不相等”;在Javascript表单验证中无法识别符号
- Ajax表单提交+引导验证程序正在工作.现在"数据未定义”;错误
- 我需要接受下划线字符“”_"在regex电子邮件验证中
- 验证特定格式而不使用“-"以拆分字符串
- "获得身份验证”;首次启动时循环forver