为了账号安全,请及时绑定邮箱和手机立即绑定

js正则,匹配 '@group/package@version' 的第二个@字符

js正则,匹配 '@group/package@version' 的第二个@字符

呼如林 2018-12-19 08:45:48
求一个正则,需求是这样的const str = '@group/package@version';const reg = /____/; // 求这个正则const arr = str.split(reg); // 得到 ['@group/package', 'version']
查看完整描述

1 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞


/**
 * 拆分名称和版本号
 * @param {String} _package 包的类型总共有4种。
 */function _split(_package) {
    // 包的类型总共有4种,
    // (1)'smash-cli'              => arr = [ 'smash-cli' ]
    // (2)'smash-cli@1.0.0'        => arr = [ 'smash-cli', '1.0.0' ]
    // (3)'@erye/smash-cli'        => arr = [ '', 'erye/smash-cli' ]
    // (4)'@erye/smash-cli@1.0.0'  => arr = [ '', 'erye/smash-cli', '1.0.0' ]
    const arr = _package.split('@');    if (arr[0] == '') {        // 数组首位是空,符合类型 3、4
        arr[1] = '@' + arr[1]; // 给第二位加上 @ 字符
        arr.shift();           // 移除首位
    }    return { name: arr[0], version: arr[1] };
}


查看完整回答
反对 回复 2018-12-19
  • 1 回答
  • 0 关注
  • 499 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信