我有不同版本的id,需要循环并返回子字符串的一部分。
示例1:12345_5678
示例2:12345_5678_90
我想把";5678〃;两个字符串的一部分。到目前为止,我有以下代码:
//let str = '12345_5678';
let str = '12345_5678_90';
let subStr = str.slice(
str.indexOf('_') + 1,
str.lastIndexOf('_'),
);
console.log(subStr);
对于具有"0"的字符串;12345_5678_90";";5678〃;部分返回正确,但对于";12345_5678";字符串返回空,因为我没有第二个"字符串"_&";。我如何才能写一份涵盖这两种情况的声明?
我是否需要检查字符串是否包含1或2"_"在处理子字符串之前?
执行所需操作的另一种方法是通过_
split()
字符串,然后返回结果数组的第二个元素:
const getId = str => str.split('_')[1];
['12345_5678', '12345_5678_90', 'abc_5678_multi_sections']
.forEach(str => console.log(getId(str)));
这假设字符串中始终至少有1个_
字符。如果不是这样的话,那么就需要实现一些额外的验证逻辑。