3

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

示例:如果我有一个字符串 "ABDHN'S-J34H@#$"; 如何将数字和符号替换为空并返回值 "ABDHN'S-JH" ?

我有以下代码可以将所有字符和符号重播为空,并且只返回我的数字

$(".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);
    }
});
4

5 回答 5

1

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

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

字符类 [] 中的插入符号 ^ 将否定匹配。此正则表达式会将除a-zA-Zsingle quote和之外的所有字符转换hyphen为空

于 2013-02-20T03:53:16.150 回答
1

您可以通过键盘上的键码值跳过它们来替换符号。

普通键盘的键码值链接: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();

}

于 2013-02-20T04:02:00.307 回答
1

您应该只允许使用字母、破折号和单引号,如下所示:

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

其他任何内容都将替换为“”。

于 2013-02-20T03:46:59.547 回答
1
"ABDHN'S-J34H@#$".replace(/[^\-'\w]/g, '')
于 2013-02-20T04:12:11.500 回答
-2
"ABDHN'S-J34H@#$".replace(/[0-9]|[\'@#$]/g, "");
于 2013-02-20T03:51:08.253 回答