Javascript 限制输入但允许粘贴
我使用此代码将输入限制为连字符、小数和数字。但我也希望允许粘贴,因为我在长时间和lat使用它,如果每个人都手动输入,我将得到用户错误Javascript 限制输入但允许粘贴,javascript,Javascript,我使用此代码将输入限制为连字符、小数和数字。但我也希望允许粘贴,因为我在长时间和lat使用它,如果每个人都手动输入,我将得到用户错误 function isNumberKeyDecimalHyph(evt){ var charCode = (evt.which) ? evt.which : evt.keyCode; if (charCode != 46 && charCode != 45 && charCode > 31 &&
function isNumberKeyDecimalHyph(evt){
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode != 46 && charCode != 45 && charCode > 31
&& (charCode < 48 || charCode > 57))
return false;
return true;
}
函数为numberkeydecimalhyf(evt){
var charCode=(evt.which)?evt.which:evt.keyCode;
如果(charCode!=46&&charCode!=45&&charCode>31
&&(字符编码<48 | |字符编码>57))
返回false;
返回true;
}
如何使用它,同时允许用户将允许的值粘贴到字段中?与其检查键值,不如绑定到,并更新其中的文本 我还在输入中加入了一个属性,这样就不会用坏字符提交
document.querySelector('input')。addEventListener('input',e=>
{
const good_re=new RegExp(e.target.getAttribute('pattern');
const bad_re=new RegExp(/([^.\-0123456789])/,'g');
如果(!良好再测试(如目标值))
{
e、 target.value=e.target.value.replace(坏的“);
}
});代码>
与其检查键值,不如绑定到,并更新其中的文本
我还在输入中加入了一个属性,这样就不会用坏字符提交
document.querySelector('input')。addEventListener('input',e=>
{
const good_re=new RegExp(e.target.getAttribute('pattern');
const bad_re=new RegExp(/([^.\-0123456789])/,'g');
如果(!良好再测试(如目标值))
{
e、 target.value=e.target.value.replace(坏的“);
}
});代码>
这里是一个代码命题
const input=document.getElementById('input');
const error=document.getElementById('error');
//仅允许0-9、连字符或小数
input.addEventListener('keypress',evt=>{
如果(!/[\-\.\d]/.test(evt.key)){
evt.preventDefault();
error.innerHTML='仅使用0-9、连字符或小数';
}否则{
error.innerHTML='';
}
});
//如果用户粘贴,请检查数字是否有效
input.addEventListener('paste',evt=>{
if(!/^[\-\.\d]+$/.test(evt.clipboardData.getData('text')){
evt.preventDefault();
error.innerHTML='仅粘贴有效序列号';
}否则{
error.innerHTML='';
}
});代码>
#错误{
颜色:红色;
左边距:1米;
}
这里是一个代码命题
const input=document.getElementById('input');
const error=document.getElementById('error');
//仅允许0-9、连字符或小数
input.addEventListener('keypress',evt=>{
如果(!/[\-\.\d]/.test(evt.key)){
evt.preventDefault();
error.innerHTML='仅使用0-9、连字符或小数';
}否则{
error.innerHTML='';
}
});
//如果用户粘贴,请检查数字是否有效
input.addEventListener('paste',evt=>{
if(!/^[\-\.\d]+$/.test(evt.clipboardData.getData('text')){
evt.preventDefault();
error.innerHTML='仅粘贴有效序列号';
}否则{
error.innerHTML='';
}
});代码>
#错误{
颜色:红色;
左边距:1米;
}