我通过一个API创建用户,并从另一个API预先添加ID,然后保存它。当在前端获取名称时,它应该只显示没有预先附加ID的名称。
示例1:S20000-KDW 255258-User 1-User 2-User 3
**预期结果:**User 1-User 2-User 3
示例2:RTW 000-RWSTY 3500-测试-测试-测试-用户
**预期结果:**测试-测试-测试-用户
我所做的尝试没有得到预期的结果:
getUserName(userName: string) {
// const userNameWithoutId = userName.split('-').slice(2).join('-');
// return userNameWithoutId;
const newName = userName.match("/^.*?-.*?-(.*)$/)[1]")
console.log("New name: " + newName);
return newName;
}
我如何拆分并获得第二个连字符后的所有内容?
2条答案
按热度按时间fwzugrvs1#
问题是
slice
运算符不修改原始数组。而是返回浅拷贝。参见MDN文档-> Array.prototype.slice()
这意味着当语句
userName.split('-').slice(2).join('-');
不修改userName变量时。因此,当你试图获取secondInDex时,你仍然在对原始值进行操作。
将代码更改为
然后修改您的逻辑以处理已清除的用户名。即
ego6inou2#
你可以通过不同的方式来实现这一点。一个是使用regex: