2013-02-20 59 views
3

有谁知道我该如何替换数字和符号(不包括破折号和单引号)?用jquery替换数字和符号/ javascript

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

回答

1

你应该只允许字母,仪表板和单引号,像这样:

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

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

+0

你的意思 - 'NEWVALUE = orgValue.replace(/ [^ A-ZA-Z'-。]/g,“”);' – 2013-02-20 03:50:37

+0

@Javier是的,谢谢。 :) – Kaeros 2013-02-20 03:52:35

1

你可以使用这个表达式:

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

这个^字符类[]内将否定匹配。此正则表达式将其他所有的字符转换比a-zA-Zsingle quotehyphen

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(); 

}