Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.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 oninput能否替代onchange和onpaste?_Javascript_Regex - Fatal编程技术网

Javascript oninput能否替代onchange和onpaste?

Javascript oninput能否替代onchange和onpaste?,javascript,regex,Javascript,Regex,我正在使用正则表达式检查非白名单字符。我想在HTML中使用oninput事件来触发正则表达式检查。这种方法会产生与我尝试使用onchange或onpaste时相同的结果吗 谢谢 Javascript: 功能检查输入(txtfieldId) var validChars=/^[0-9a-z\s-.#\,()]+$/i; { if(txtfieldId.value.match(validChars)) { 返回true; } 其他的 { 警报(“输入的特殊字符无效”); 返回false; } }

我正在使用正则表达式检查非白名单字符。我想在HTML中使用oninput事件来触发正则表达式检查。这种方法会产生与我尝试使用onchange或onpaste时相同的结果吗

谢谢

Javascript:


功能检查输入(txtfieldId)
var validChars=/^[0-9a-z\s-.#\,()]+$/i;
{
if(txtfieldId.value.match(validChars)) { 返回true; } 其他的 { 警报(“输入的特殊字符无效”); 返回false; } }

您可以使用
按键事件,检查输入是否有效,如果无效,则使用
事件阻止默认操作。preventDefault()


var validChars=/^[0-9a-z\s-.#\,()]+$/i;
document.getElementById(“输入”).addEventListener(“粘贴”,函数(e){
var剪贴簿数据,粘贴数据;
//通过剪贴板API获取粘贴的数据
clipboardData=e.clipboardData | | window.clipboardData;
pastedData=clipboardData.getData('Text');
var inputOk=检查输入(粘贴数据);
如果(!inputOk){
e、 预防默认值();
}
});
document.getElementById(“输入”).addEventListener(“按键”,函数(e){
var inputOk=检查输入(e.key);
如果(!inputOk){
e、 预防默认值();
}
});
函数检查输入(值)
{
if(值匹配(有效字符))
{
返回true;
}
其他的
{
警报(“输入的特殊字符无效”);
返回false;
}
}

感谢您的回答,它非常适合键入文本。但是,我还不能让它处理粘贴到字段中的文本。将“按键”更改为“粘贴”似乎不起作用。我想让这两种类型的活动都有效。对不起,我没胃口@朱庇塔我阻止了其他形式的输入。很抱歉,我应该澄清一下。我需要的功能,也抛出警报时,有人试图粘贴在非白名单字符。我仍然需要保持粘贴文本的能力。谢谢你的时间@Jupitar我添加了粘贴处理。啊,我看到事件侦听器是分开的。现在我知道它们必须分开,不能合并。非常感谢。