1

電話番号 (999) 999-9999 のリテラルを削除して、別の非表示の入力値で 9999999999 にしようとしています。

これは .val() 関数を使用して達成できますか、それとも非表示の入力に値を追加することしかできませんか?

電話1= (999) 999-9999

電話にはこの値が必要です= 9999999999

        $('#phone1').bind('keypress blur', function() {

    $('#phone').val($('#phone1').val() + ' ' );
    });
4

3 に答える 3

5
  1. 価値を得る
  2. 文字列置換を実行
  3. 設定値

プレーンストリングの基本的な考え方

var str = "(999) 999-9999 ";
var newStr = str.replace(/\D/g,"");
console.log(newStr);

今あなたがしたことを書く最良の方法は

$('#phone1').on('blur', function() {  //jQuery 1.7.2+ use on, not bind
    var txtBox = $(this);
    txtBox.val( txtBox.val().replace(/\D/g,"") );
});
于 2012-08-13T18:23:39.593 に答える
1
$('#phone1').on('keypress blur', function() {
    $('#phone').val(this.value.replace(/[^\d]/g, "") + ' ' );
});

フィドル

于 2012-08-13T18:26:20.583 に答える
1

replace [MDN]メソッドが必要です。それはあなたのためにほとんどの仕事をするつもりです:

$('#phone').val($('#phone1').val().replace(/\D/g, ''));

最初のパラメーターは、部分文字列または正規表現のいずれかです。この例では、「数字ではない」という正規表現を使用しています。

于 2012-08-13T18:26:55.800 に答える