反向Javascript切片

时间:2014-09-22 05:22:03

标签: javascript html

我想在给定条件下切片javascript变量。

条件是如果变量长度为12,则应切片为2,6,4,如果长度为11,则应切片为2,5,4。我怎么能切这个。

以下是我的尝试。

代码:

var new_no   = "("+phone_no.slice(0,2)+")-"+phone_no.slice(2,7)+"-"+phone_no.slice(7,11);

如何根据我给定的条件制作长度检查条件和切片?

4 个答案:

答案 0 :(得分:1)

您可以使中间切片成为条件:

var midEnd = phone_no.length == 11? 7 : 8;

var new_no = "("+phone_no.slice(0,2)+")-"+phone_no.slice(2,midEnd)+"-"+phone_no.slice(midEnd);

如果您不提供第二个参数,它将切片到最后。虽然为了获得更好的浏览器兼容性,我会使用substr代替:

var new_no = '(' + phone_no.substr(0,2) + ')-' + 
             phone_no.substr(2,midEnd) +
             '-' + phone_no.substr(midEnd);

答案 1 :(得分:1)

function preparePhoneNo(num) {
    return '(' + num.slice(0, 2) + ')-' + num.slice(2, -4) +  '-' + num.slice(-4);
}

var phone_no = "123465789012";
var new_no = preparePhoneNo(phone_no);

答案 2 :(得分:1)

这是我的看法,我会使用substr

var phone_no = '12345678901'; 
var midGroup = phone_no.length == 11 ? 5 : 6;
var new_no = "("+phone_no.substr(0,2)+")-"+phone_no.substr(2,midGroup)+"-"+phone_no.substr(midGroup + 2);
alert(new_no);

答案 3 :(得分:0)

您只需使用.length来检查数字的长度,然后两个简单的条件即可:

var phone_no = "123456789878";
if(phone_no.length === 11)
    var new_no   = "("+phone_no.slice(0,2)+")-"+phone_no.slice(2,7)+"-"+phone_no.slice(7,11);
else if(phone_no.length === 12)
    var new_no   = "("+phone_no.slice(0,2)+")-"+phone_no.slice(2,8)+"-"+phone_no.slice(8,12);
else
    alert('Invalid Number');

<强> See the DEMO here