2014-09-22 40 views
0

这是问题的连续性Javascript slice from reverse电话号码切片和面具

由于我是JavaScript新手。我无法在适当的地方给出条件。请帮助。

如果我怎样才能插入以下条件这里的变量new_no

var phones = labels.phones; 
phone_nums = phones.split(","); 

for(var l=0; l<phone_nums.length; l++) 
{ 
var new_no = "("+phone_nums[l].slice(0,2)+")-"+phone_nums[l].slice(2,6)+"-"+phone_nums[l].slice(6,11); 
list +="<li>"+ new_no+"<a class='removno' >x</a><input type=\"hidden\" name=\"phoneno[]\" value=\""+phone_nums[l]+"\" /></li>"; 
} 

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

中只需插入呢?.. – Scimonster 2014-09-22 07:03:46

回答

1

使用此很短,整洁相同的结果

**编辑**

我更新的逻辑来满足您的需求

var new_no = ""; 

var phones = labels.phones; 
phone_nums = phones.split(","); 
var list = ""; 
for(p_index in phone_nums){ 
    var phone_no = phone_nums[p_index]; 
    var pLength = phone_no.length; 

    if(pLength == 11 || pLength == 12){ 
     var midGroup = pLength == 11 ? 5 : 6; 

     new_no = "("+phone_no.substr(0,2)+")-"+phone_no.substr(2,midGroup)+"-"+phone_no.substr(midGroup + 2); 
     list +="<li>"+ new_no+"<a class='removno' >x</a><input type=\"hidden\" name=\"phoneno[]\" value=\""+phone_no+"\" /></li>"; 
    } else { 
     console.log('Invalid Number :: ' + phone_no); 
    } 
} 

假设labels.phones包含'123456789011,110987654321'这将输出在

以下
<li>(12)-345678-9011<a class='removno' >x</a><input type="hidden" name="phoneno[]" value="123456789011" /></li> 
<li>(11)-098765-4321<a class='removno' >x</a><input type="hidden" name="phoneno[]" value="110987654321" /></li> 

这里是一个演示http://jsfiddle.net/cdahh64c/

+0

我会检查它,顺便说一下'labels.phones'在少数分钟传达\ – 2014-09-22 07:15:03

+0

包含多组电话号码?如果是这样我需要重做我的代码一点点 – andrex 2014-09-22 07:18:01

+0

但它没有返回数字与11位数字,我检查它 – 2014-09-22 11:09:59

0

你只需要插入代码里面的for循环。如果只有在数字有效时才需要添加到列表中,则需要更多的工作。

var phones = labels.phones; 
phone_nums = phones.split(","); 

for(var l=0; l<phone_nums.length; l++) 
{ 
    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'); 

    if(phone_no.length === 11 || phone_no.length === 12) 
    list +="<li>"+ new_no+"<a class='removno' >x</a><input type=\"hidden\" name=\"phoneno[]\" value=\""+phone_nums[l]+"\" /></li>"; 
} 
+0

将检查和少数分钟传达,感谢 – 2014-09-22 07:15:38