Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 限制输入但允许粘贴_Javascript - Fatal编程技术网

Javascript 限制输入但允许粘贴

Javascript 限制输入但允许粘贴,javascript,Javascript,我使用此代码将输入限制为连字符、小数和数字。但我也希望允许粘贴,因为我在长时间和lat使用它,如果每个人都手动输入,我将得到用户错误 function isNumberKeyDecimalHyph(evt){ var charCode = (evt.which) ? evt.which : evt.keyCode; if (charCode != 46 && charCode != 45 && charCode > 31 &&

我使用此代码将输入限制为连字符、小数和数字。但我也希望允许粘贴,因为我在长时间和lat使用它,如果每个人都手动输入,我将得到用户错误

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米;
}