gpt4 book ai didi

javascript - jQuery 只允许数字、字母和连字符

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

如何使用 jQuery 从字符串中删除除数字、字母和连字符之外的所有内容?

我发现这段代码只允许使用字母数字字符,但我不确定如何添加连字符。

$('#text').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)) {
return true;
}

e.preventDefault();
return false;
});

最佳答案

您只需将正则表达式更改为:"^[a-zA-Z0-9\-]+$"

请注意,连字符使用 \ 进行转义,否则它用于指定一个范围,例如 a-z(从 a 的字符) >z)。

此代码只会检查最后输入的字符是否在允许的列表中,您可能还想检查在粘贴到字段后,该值是否仍然正确:

// The function you currently have
$('#text').keypress(function (e) {
var allowedChars = new RegExp("^[a-zA-Z0-9\-]+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (allowedChars.test(str)) {
return true;
}
e.preventDefault();
return false;
}).keyup(function() {
// the addition, which whill check the value after a keyup (triggered by Ctrl+V)
// We take the same regex as for allowedChars, but we add ^ after the first bracket : it means "all character BUT these"
var forbiddenChars = new RegExp("[^a-zA-Z0-9\-]", 'g');
if (forbiddenChars.test($(this).val())) {
$(this).val($(this).val().replace(forbiddenChars, ''));
}
});

关于javascript - jQuery 只允许数字、字母和连字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20445425/

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