gpt4 book ai didi

javascript - 不允许写入特殊字符

转载 作者:行者123 更新时间:2023-12-03 01:25:32 25 4
gpt4 key购买 nike

我正在尝试使用 jquery 制作主题标签系统,但我对特殊字符 ctrl+V 有疑问。和mause right click paste 。我不想允许 ctrl+v右键单击粘贴,而且我也不想允许特殊字符,例如(*/-+()[]{}?-_^|!'"<>&%,.:;`)。

我们可以在我的代码中做到这一点吗?任何人都可以在这里帮助我吗?

这是DEMO 页面

在这个演示中,您可以看到,当您编写示例时,jquery 代码会如何自动在世界前面添加 diez( # ) 符号,如下所示 #how #are #you

这是快速代码:

$(document).ready(function() {
$("body").on("keyup", "#hash", function(event) {
var keyCode = event.keyCode;
// Allow: backspace, delete, tab, escape et enter
if (
$.inArray(keyCode, [46, 8, 27]) !== -1 ||
// Allow: Ctrl+A, Command+A
(keyCode == 65 && (event.ctrlKey === true || event.metaKey === true)) ||
// Allow: Ctrl+Z, Command+Z
(keyCode == 90 && (event.ctrlKey === true || event.metaKey === true)) ||
// Allow: home, end, left, right, down, up
(keyCode >= 35 && keyCode <= 40)
) {
// let it happen, don't do anything
return;
}

if ($.inArray(keyCode, [32, 9, 13]) !== -1) {
var $textarea = $(this);
var text = $textarea.val();
text = XRegExp.replaceEach(text, [
[/#\s*/g, ""],
[/\s{2,}/g, " "],
[
XRegExp(
"(?:\\s|^)([\\p{L}\\p{N}]+)(?=\\s|$)(?=.*\\s\\1(?=\\s|$))",
"gi"
),
""
],
[XRegExp("([\\p{N}\\p{L}]+)", "g"), "#$1"]
]);

$textarea.val(text);
event.preventDefault();
event.stopPropagation();
event.stopImmediatePropagation();
}
});
});
.hash {
position:relative;
width:100%;
border:1px solid #d8dbdf;
outline:none;
padding:15px;
color:#292929;
}
.hash:focus {
border:1px solid red;
}
.container {
position:relative;
width:100%;
max-width:600px;
margin:0px auto;
margin-top:100px;
}
<script src="https://unpkg.com/xregexp@3.2.0/xregexp-all.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<input type="text" class="hash" id="hash" placeholder="Write your word and press enter"/>
</div>

最佳答案

您需要的是防止用户执行此类操作时发生默认事件。因此,最简单的方法可能是捕获事件并阻止它们。

根据键码过滤掉不需要的字符,您的做法是正确的。虽然不是最理想的方法,但它可以完成工作。

  $('#hash').on("paste",function(e) {
e.preventDefault();
});

$('#hash').bind("contextmenu", function(e) {
e.preventDefault();
});

只需将上述内容添加到您的 $(document).ready 函数中

关于javascript - 不允许写入特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51564965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com