我有一个字符串:
"This is the\nstring with\nline breaks\n"
我需要得到:
[This, is, the\n, string, with\n, line, breaks\n
]
当我使用 .split(/\s{1,}/) - \n 换行符消失。如何保存它们?
需要考虑多个空间
我有一个字符串:
"This is the\nstring with\nline breaks\n"
我需要得到:
[This, is, the\n, string, with\n, line, breaks\n
]
当我使用 .split(/\s{1,}/) - \n 换行符消失。如何保存它们?
需要考虑多个空间
也许amatch
会给你你想要的
"This is the\nstring with\nline breaks\n".match( /([^\s]+\n*|\n+)/g );
// ["This", "is", "the\n", "string", "with\n", "line", "breaks\n"]
[^\s]+
表示尽可能多的非空格(一个或多个),
\n*
表示尽可能多的新行(0 或更多),
|
表示OR,
\n+
表示尽可能多的新行(一个或多个)。
通过使拆分成为捕获组,它们将出现在结果数组中。然后你可以按摩:
"This is the\nstring with\nline breaks\n".split(/(\s+)/);
结果是 :
["This", " ", "is", " ", "the", "\n", "string", " ", "with", "\n", "line", " ",
"breaks", "\n", ""]
我将作为练习留下这个数组的操作将产生您请求的结果。
改用这个:
.split(/ +/); // (/ +/ to take multiple spaces into account.)
因为:
"This is the\nstring with\nline breaks\n".split(' ');
回报:
["This", "is", "the
string", "with
line", "breaks
"]
您可能不会从字面上看到"\n"
这些字符串,因为它们在控制台中被呈现为实际的换行符。
仅按空格分割
.split(" ");