如何在HTML中的文本框中将句点(例如)的出现次数限制为仅1 ?我想创建一个只接受数字和仅1个句号的文本框,以帮助防止错误。我正在使用HTML元素input
并使用JavaScript(请不要使用JQuery)。
答案 0 :(得分:1)
<强> 1。仅允许使用数字而不限制句点或小数点。
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode != 46 && charCode > 31 &&
(charCode < 48 || charCode > 57))
return false;
return true;
}
&#13;
<input id="textChar" onkeypress="return isNumberKey(event)" type="text" name="textChar">
&#13;
<强> 2。仅允许十进制数字,最多只有一个小数点和一个句点
setTimeout(...,0)是在已修改字段值后执行该函数的方法。
document.write('<input id="inputField" onkeyup="run(this)" />');
function run(field) {
setTimeout(function() {
var regex = /\d*\.?\d?/g;
field.value = regex.exec(field.value);
}, 0);
}
&#13;
第3。仅允许十进制数字,小数点没有限制但只有一个句点
document.getElementById('reg').onkeypress = function(e) {
if (e.keyCode === 46 && this.value.split('.').length === 2) {
return false;
}
}
&#13;
<input type="number" id="reg">
&#13;
答案 1 :(得分:-2)
您可以使用正则表达式,但分割字符串和计算长度更容易。大于两个意味着你有两个时期:
"Uno. Dos.".split('.').length #3
"Uno. Dos".split('.').length #2