我想在给定条件下切片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 :(得分: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 强>