2014-09-22 64 views
0

我想切片給定條件下的javascript變量。從反向的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); 

我怎樣才能使長度檢查條件和切片根據我給定的條件?

+0

你的意思是你想刪除數組中的元素? – andrex 2014-09-22 05:25:23

+0

不,我不會,如果長度是12,它將掩碼爲2,6,4,如果長度爲11,它將掩碼爲2,5,4 – 2014-09-22 05:26:34

+0

你是說如果數字串的長度是12你想讓它成爲例子,如果'123456789011'將它轉換爲'12-345678-9011'這就是你想要實現的嗎? – andrex 2014-09-22 05:28:24

回答

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

+0

不客氣.. – 2014-09-22 05:38:31

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); 
+0

感謝它的真棒 – 2014-09-22 05:47:34

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); 
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); 
+0

不錯的代碼,我明白了 – 2014-09-22 05:48:23