0
data = [
    "c_2_12323_JAMES_PHONE",
    "g_3_52343_ANDY_PHONE",
    "a_2_24123_JAMES_PHONE"
]

这个数组里 每个字符中的前三个都是不需要的

要把它过滤成

data = [
        "JAMES_PHONE",
        "ANDY_PHONE",
        "JAMES_PHONE"
    ]

可以把 _ 都去掉更好

有什么比较好的做法?

GOGOGO 101
2019-05-01 提问

查看全部 2 个回答

0

已采纳
data.map(item=>item.replace(/\w_\d_\d*_(\w*)_(\w*)/g,'$1_$2'))

或者

data.map(item=>item.match(/([^_]+)/g).slice(3,5).join('_'))

去掉最后的_这样写:

data.map(item=>item.replace(/\w_\d_\d*_(\w*)_(\w*)/g,'$1$2'))

或者

data.map(item=>item.match(/([^_]+)/g).slice(3,5).join(''))

1楼的方法中不应该用splice,因为splice是用来删除元素的,它返回的是删除掉的元素,这里正好是你需要的后两个,应该用slice截取更加合于语义

推广链接