用jquery / javascript替换数字和符号

时间:2013-02-20 03:44:31

标签: javascript jquery regex

有谁知道如何更换数字和符号(不包括破折号和单引号)?

实施例: 如果我有一个字符串“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);
    }
});

5 个答案:

答案 0 :(得分:1)

你应该只允许使用字母,短划线和单引号,如下所示:

newValue = orgValue.replace(/[^a-zA-Z'-]/g, "");

其他任何内容都会被“”替换。

答案 1 :(得分:1)

您可以使用此正则表达式:

string.replace(/^[a-zA-Z'-]+$/, '')

角色类[]内的插入符号^将否定匹配。此正则表达式会将a-zA-Zsingle quotehyphen以外的所有字符转换为空

答案 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, "");