有谁知道如何更换数字和符号(不包括破折号和单引号)?
实施例: 如果我有一个字符串“ABDHN'S-J34H @#$”; 如何将数字和符号替换为空并返回值“ABDHN'S-JH”?
我有以下代码将所有的char和符号重放为空,只返回我的号码
$(".test").keyup(function (e) {
orgValue = $(".test").val();
if (e.which != 37 && e.which != 39 && e.which != 8 && e.which != 46) {
newValue = orgValue.replace(/[^\d.]/g, "");
$(".test").val(newValue);
}
});
答案 0 :(得分:1)
你应该只允许使用字母,短划线和单引号,如下所示:
newValue = orgValue.replace(/[^a-zA-Z'-]/g, "");
其他任何内容都会被“”替换。
答案 1 :(得分:1)
您可以使用此正则表达式:
string.replace(/^[a-zA-Z'-]+$/, '')
角色类[]内的插入符号^将否定匹配。此正则表达式会将a-z
,A-Z
,single quote
和hyphen
以外的所有字符转换为空
答案 2 :(得分:1)
您可以通过跳过键盘上的键码值来替换符号。
reglar键盘键码值的链接: http://www.w3.org/2002/09/tests/keys.html
$("#your control").bind("keydown keyup", doItPlease);
function doItPlease(e)
{
// First 2 Ifs are for numbers for num pad and alpha pad numbers
if (e.which < 106 && e.which > 95)
{
return false; // replace your values or return false
}
else if (e.which < 58 && e.which > 47)
{
// replace your values or return false
} else {
var mycharacters = [8, 9, 33, 34, 35 // get your coders from above link];
for (var i = 0; i < mycharacters.length; i++) {
if (e.which == mycharacters[i]) {
// replace your characters or just
// return false; will cancel the key down and wont even allow it
}
e.preventDefault();
}
答案 3 :(得分:1)
"ABDHN'S-J34H@#$".replace(/[^\-'\w]/g, '')
答案 4 :(得分:-2)
"ABDHN'S-J34H@#$".replace(/[0-9]|[\'@#$]/g, "");