我在网上和这里阅读了一些关于堆栈溢出的答案,但我没有找到解决方案。
我试图阻止用户将无效字符(除 az AZ 字符之外的任何字符)复制粘贴到我的输入字段中。我不想在提交时这样做,而是在复制粘贴事件时这样做。
如果我复制包含所有无效字符(如' 1234
')的粘贴文本,我的 if 块将被执行(正则表达式测试失败)并且工作正常。
12abc
但是,如果我复制的文本包含有效或无效字符(如“ ”或“ ”)的混合,则它不起作用abc12
。
如何防止用户将包含无效字符的文本复制粘贴到我的输入文本中?
我在输入文本元素上调用我的javascript函数,如下所示:
function validatePaste(e) {
var regex = /[a-z]/gi;
var copiedText = e.clipboardData.getData('text')
console.log(copiedText,regex.test(copiedText) )
if (!regex.test(copiedText)) {
e.preventDefault(); //this line executes only if copiedText has all invalid characters
return false;
}
}
<input type="text" onpaste="validatePaste(event)">