【发布时间】:2021-05-14 17:16:00
【问题描述】:
我在网上和这里阅读了一些关于堆栈溢出的答案,但我没有找到解决方案。
我试图阻止用户将无效字符(除了 a-z A-Z 字符之外的任何字符)复制粘贴到我的输入字段中。我不想在提交时这样做,而是在复制粘贴事件时这样做。
如果我复制包含所有无效字符(如“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)">
【问题讨论】:
-
您的
valid字符是否只有数字? -
所以让你的正则表达式匹配一个完整的字符串
标签: javascript onpaste