电话号码切片和掩码

Phone Number slice and mask

本文关键字:掩码 切片 电话号码      更新时间:2023-09-26

这是来自反向的Question Javascript切片的连续性

因为我是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');

使用这个,它更短、更整洁,结果相同

**编辑**

我更新了逻辑以满足您的需求

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/

您只需要在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>";
}