我正在尝试使用 Javascript 给定一个带连字符的字符串来解析一个数组。
- foo
- bar
我已经非常接近弄清楚了。我已将其缩减为使用此代码获取两个项目的位置。
const chunks = input.split(/\ ?\-\ ?/);
chunks = chunks.slice(1);
这会将之前的输入缩减为这个。
["foo\n", "bar"]
无论数组中的项数如何,我都尝试了很多解决方案来从字符串中获取换行符,但没有任何效果。如果有人能帮我解决这个问题,我将不胜感激。
最佳答案
例如,您可以拆分、删除所有空条目,然后 trim 每个项目以删除所有前导和尾随空白字符,包括换行符。
请注意,您不必转义空格和连字符。
const input = `- foo
- bar`;
const chunks = input.split(/ ?- ?/)
.filter(Boolean)
.map(s => s.trim());
console.log(chunks);
或者同样的方法只删除换行符:
const input = `- foo
- bar`;
const chunks = input.split(/ ?- ?/)
.filter(Boolean)
.map(s => s.replace(/\r?\n|\r/g, ''));
console.log(chunks);
除了拆分,您还可以使用带有捕获组的匹配:
^ ?- ?(.*)
模式匹配:
^
字符串开始?- ?
在可选空格之间匹配-
(.*)
捕获组 1,匹配行的其余部分
const input = `- foo
- bar`;
const chunks = Array.from(input.matchAll(/^ ?- ?(.*)/gm), m => m[1]);
console.log(chunks);
关于javascript - 有没有办法删除数组中字符串中的换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70425574/