电话号码切片和面具

时间:2014-09-22 07:01:29

标签: javascript

这是问题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');

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分: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>";
}