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'-]+$/, '')

文字クラス[]内のcaret^は、一致を否定します。この正規表現は、、、および以外のすべての文字を空に変換a-zしますA-Zsingle quotehyphen

于 2013-02-20T03:53:16.150 に答える
1

次のように、文字、ダッシュ、一重引用符のみを許可する必要があります。

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

それ以外は「」に置き換えられます。

于 2013-02-20T03:46:59.547 に答える
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
"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 に答える