仅在分隔符上拆分,并在该分隔符上显式拆分

时间:2019-11-08 11:35:17

标签: angular typescript

我有一个小问题,我们的API正在返回一个需要格式化为列表的字符串。

示例字符串:

"*list1. **subItemOflist. *list2 **subItemOfList2."

需要将其格式化为:

 - list1
  - subItemOfList
 - list2
  - subItemOfList2

我创建了一个将在'*'上分割的管道。但是,子项目还包含星号,它们也被拆分。

const mockstring = '*list. **sublist.';
const splitList = mockstring.split('*').splice(1);
console.log(splitList);

产生

[
   "list. ",
   "",
   "sublist."
]

注意空数组节点。

1 个答案:

答案 0 :(得分:1)

split使用正则表达式作为参数,因此您可以在其中使用环视断言,以仅在不存在“ *”或后面没有另一个“ *”的情况下匹配“ *”:mockstring.split(/(?<!\*)\*(?!\*)/)

如果要分割任意数量的“ *”(但至少分割一个),则正则表达式为:mockstring.split(/\*+/)