使用.val()从文本中删除文字

时间:2012-08-13 18:21:57

标签: javascript jquery input

我正在尝试删除电话号码(999)999-9999中的字面值,使其成为另一个隐藏输入值的9999999999。

这可以使用.val()函数完成,还是只能为隐藏的输入添加更多值?

phone1 =(999)999-9999

手机应具有此值= 9999999999

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

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

3 个答案:

答案 0 :(得分:5)

  1. 获得价值
  2. 运行string replace
  3. 设定值
  4. 使用普通字符串的基本思想

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

答案 1 :(得分:1)

$('#phone1').on('keypress blur', function() {
    $('#phone').val(this.value.replace(/[^\d]/g, "") + ' ' );
});

FIDDLE

答案 2 :(得分:1)

您需要replace [MDN] 方法。这将是你为大部分工作做的事情:

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

第一个参数可以是子字符串也可以是正则表达式。在这个例子中,我使用了正则表达式“非数字”。