如何按回车符和空格分割字符串

3

为什么我问一个简单的问题:

大家好,很多人问如何在javascript中按多个值分割字符串,但我不理解在分割中使用的/[^\w\s]|_/是如何工作的,因此我不知道如何修改它以匹配我的目标。

我需要什么:

我在html中有一个文本区域,所以用户可以以多种方式格式化文字(始终为文本,如果他们输入数字,则将其视为文本)。

我的代码:

<div class="ui-block-c">
   <textarea id="writtenWord" rows="1" cols="50"></textarea>
</div>


var writtenWord = document.getElementById("writtenWord");
var theWord = writtenWord.value.toUpperCase();
res = theWord.split(" ");

for (var i = res.length - 1; i >= 0; i--) {
        ArrayWords.push(res[i]);
    };

我想要的:

了解它是如何工作的,以便我可以更改条件+一个可行的示例,即使用户按下回车键或输入5个空格也能分割单词...

1个回答

9
只需要使用正则表达式 /\s+/ 即可。
res = theWord.split(/\s+/);

上面的代码将根据一个或多个空格进行分割。"\s" 表示一个空格,"+" 是一个量词符号,表示匹配前一个标记(在这种情况下是空格 "\s")1次或更多次。
另外,您只需要...
ArrayWords = res;

不需要循环和推送。另一种方法是用一个空格替换多个空格,并在单个空格上拆分。

res = theWord.replace(/\s+/," ").split(" ");

@Sascuash 它也将被分割。 - Amit Joki
我刚刚尝试了一下,但无法使用"回车键"。在这里:(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp) 我发现 \r 是我想要使用的,以便进行拆分。 - Sascuash
我该如何添加这个其他参数? - Sascuash
@Sascuash 尝试使用 split(/\s+|\n/) - Amit Joki
1
它与 replace(/\s+/," ").split(/\s+|\n/) 完美配合,运行得非常顺利。 - Sascuash
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接