首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从反向Javascript切片

从反向Javascript切片
EN

Stack Overflow用户
提问于 2014-09-22 05:22:02
回答 4查看 2.9K关注 0票数 0

我想在给定的条件下切片javascript变量。

条件是,如果变量的长度是12,它应该切成2,6,4,如果它的长度是11,它应该切成2,5,4。

,这是我尝试过的。

代码:

代码语言:javascript
复制
var new_no   = "("+phone_no.slice(0,2)+")-"+phone_no.slice(2,7)+"-"+phone_no.slice(7,11);

如何使长度检查条件和切片根据我的给定条件?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-09-22 05:31:24

您可以简单地使用.length来检查数字的长度,然后两个简单的条件就可以了:

代码语言:javascript
复制
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');

请看这里的演示

票数 0
EN

Stack Overflow用户

发布于 2014-09-22 05:33:05

您可以将中间片设置为条件:

代码语言:javascript
复制
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);

如果不提供第二个参数,它将被分割到最后。尽管为了更好地兼容浏览器,我会使用http://ecma-international.org/ecma-262/5.1/#sec-15.5.4.15来代替:

代码语言:javascript
复制
var new_no = '(' + phone_no.substr(0,2) + ')-' + 
             phone_no.substr(2,midEnd) +
             '-' + phone_no.substr(midEnd);
票数 1
EN

Stack Overflow用户

发布于 2014-09-22 05:40:45

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25967129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档