我们可以使用正则表达式来匹配每个子字符串的最后一个分隔符的位置,并使用该位置来将其拆分为数组。以下是代码示例:
function splitStringByLastDelimiter(str, delimiter) {
const regex = new RegExp(`\\${delimiter}(?=[^${delimiter}]*$)`, 'g');
return str.split(regex);
}
// 示例
const str = 'apple,banana,orange,pear';
const arr = splitStringByLastDelimiter(str, ',');
console.log(arr); // ['apple,banana,orange', 'pear']
在此示例中,我们使用正则表达式 \, (?=[^,]*$)
来匹配每个逗号的位置。它将匹配字符串中最后一个逗号之前的所有非逗号字符。然后,我们使用 split
方法将字符串拆分为数组,并指定该正则表达式作为参数。拆分后,我们将得到一个包含两个子字符串的数组,第一个子字符串是从字符串开头到最后一个逗号之前的所有内容,第二个子字符串是最后一个逗号之后的所有内容。
请注意,如果字符串中没有分隔符,则返回的数组将只包含原始字符串。
上一篇:按最后添加的Vue JS排序项目