JavaScript中如何处理字符串空格并生成含连续空格元素的数组
解决JavaScript字符串分割保留末尾连续空格的问题
原代码使用split(" ")处理带末尾连续空格的字符串时,无法将末尾的连续空格作为单个元素保留,反而会生成多个空字符串——这是因为split(" ")会把连续分隔符拆为空元素,且默认忽略字符串末尾的空元素。
要实现将"Hello World "分割成["Hello", "World", " "]的需求,用正则结合match方法是最直接的方式,直接匹配所有连续非空格字符或连续空格块:
var convertToArray = (txt) => { let arr = txt.match(/[^ ]+| +/g); console.log(arr); }; convertToArray("Hello World "); // 输出: ["Hello", "World", " "]
原理说明
- 正则
/[^ ]+| +/g的逻辑:[^ ]+:匹配一个或多个非空格字符(即单词部分)|:逻辑或,匹配前后任意一种模式+:匹配一个或多个连续空格g:全局匹配,找出所有符合条件的子串
如果一定要用split方法,也可以通过正则调整,但match的写法更直观,完全贴合需求场景。
内容的提问来源于stack exchange,提问作者sumanth.js
相关产品推荐
相关产品推荐

