使用jQuery在td字段中将连字符插入phone#

时间:2011-03-02 16:49:23

标签: jquery string

我有一张表,其中包含从数据库中查询的一堆电话号码。我想在电话号码中插入连字符,而不是:“0000000000”,用户将看到:“000-000-0000”。在正则表达式上不是很好,但这是我到目前为止所尝试的:

  $('.views-field-phone').each(function(){
      $(this).insertAfter(/(.{3})/g,"-1-")
      $(this).insertAfter(/(.{7})/g,"-1-")
  });

3 个答案:

答案 0 :(得分:6)

可能不是最佳但是......

 string = string.substring(0,3) + '-' + string.substring(3,6) + '-' + string.substring(6,10);

或您的情况......

$('.views-field-phone').each(function(){
      var string = $(this).html();
      $(this).html(string.substring(0,3) + '-' + string.substring(3,6) + '-' + string.substring(6,10)) 
});

答案 1 :(得分:2)

这是一个简单的功能,我用来格式化电话号码,没有什么特别的,但完成工作。

function formatPhoneNumber(phoneNumber) {
    var rawPhoneNumber = phoneNumber.replace("(", "").replace(")", "").replace(/-/g, "").replace(/ /g, "");
    if (isNaN(rawPhoneNumber)) {
        return null;
    }
    if (rawPhoneNumber.length == 10) {
        return "(" + rawPhoneNumber.substring(0, 3) + ") " + rawPhoneNumber.substring(3, 6) + "-" + rawPhoneNumber.substring(6, 10);
    }
    if (rawPhoneNumber.length == 11) {
        return rawPhoneNumber.substring(0, 1) + " (" + rawPhoneNumber.substring(1, 4) + ") " + rawPhoneNumber.substring(4, 7) + "-" + rawPhoneNumber.substring(7, 11);
    }
}

测试案例:

$("body").append("<h1>" + formatPhoneNumber("1234567890") + "</h1>");
$("body").append("<h1>" + formatPhoneNumber("11234567890") + "</h1>");
$("body").append("<h1>" + formatPhoneNumber("11267890") + "</h1>");

输出:

<h1>(123) 456-7890</h1>
<h1>1 (123) 456-7890</h1>
<h1>undefined</h1>

jsfiddle上的示例。

答案 2 :(得分:0)

为什么不能只使用javascript substr()?如果数字是统一的,你可以像这样分开:3-3-4字符。