gpt4 book ai didi

javascript - 如何防止在我的 javascript 函数中重复?

转载 作者:行者123 更新时间:2023-11-30 15:38:41 26 4
gpt4 key购买 nike

我正在使用以下方法来防止使用 jQuery 将特殊字符输入到 ID 为 A、B 和 C 的输入框中,并且按预期工作。这发生在(document).ready

$("[id$='A']").keypress(function (e) {
var regex = new RegExp("^[a-zA-Z0-9]+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str) || (/^(8|9|13|27)$/.test("" + e.keyCode))) {
return true;
}
e.preventDefault();
return false;
});
$("[id$='B']").keypress(function (e) {
var regex = new RegExp("^[a-zA-Z0-9]+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str) || (/^(8|9|13|27)$/.test("" + e.keyCode))) {
return true;
}
e.preventDefault();
return false;
});
$("[id$='C']").keypress(function (e) {
var regex = new RegExp("^[a-zA-Z0-9]+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str) || (/^(8|9|13|27)$/.test("" + e.keyCode))) {
return true;
}
e.preventDefault();
return false;
}

我想找出一个通用的方法,而不是重新编写函数。这是我尝试过的...

function blockSpecialChar(passId){
var tempId = $("[id$ ='passId']");
tempId.keypress(function (e) {
var regex = new RegExp("^[a-zA-Z0-9]+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str) || (/^(8|9|13|27)$/.test("" + e.keyCode))) {
return true;
}
e.preventDefault();
return false;
});

}

并通过以下方式调用它:

 blockSpecialChar(A);

让我知道哪里出错了。任何建议都会很棒。

提前致谢!

最佳答案

就让它成为一个单独的函数:

function blockSpecialChar(e) {
var regex = new RegExp("^[a-zA-Z0-9]+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str) || (/^(8|9|13|27)$/.test("" + e.keyCode))) {
return true;
}
e.preventDefault();
return false;
}

$("[id$='A'], [id$='B'], [id$='C']").keypress(blockSpecialChar);

关于javascript - 如何防止在我的 javascript 函数中重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41163122/

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