拆分一个字符串,删除 JavaScript 中的任何空元素
Split a String removing any Empty Elements in JavaScript
要拆分字符串并从数组中删除空元素:
- 使用该
split()
方法获取子字符串数组。 - 使用该
filter()
方法从数组中删除空元素。 - 该
filter
方法将返回一个没有空元素的新数组。
const str = ' bobby hadz com '; const arr = str.split(' ').filter(element => element); console.log(arr); // 👉️ [ 'bobby', 'hadz', 'com' ]
String.split ()
方法接受一个分隔符,并在每次出现所提供的分隔符时将字符串拆分为一个数组。
该String.split()
方法采用以下 2 个参数:
姓名 | 描述 |
---|---|
分隔器 | 描述每个拆分应该发生的位置的模式。 |
限制 | 一个整数,用于指定要包含在数组中的子字符串数的限制。 |
该方法返回一个子字符串数组。
const str = ' bobby hadz com '; // 👇️ [ '', 'bobby', '', '', 'hadz', 'com', '' ] console.log(str.split(' '))
我们传递给Array.filter方法的函数
会针对数组中的每个元素进行调用。
在每次迭代中,我们按原样返回字符串。
filter
方法返回一个新数组,其中仅包含回调函数返回的真实元素。JavaScript 中的假值是:false
, null
, undefined
, 0
, ""
(空字符串),NaN
(不是数字)。
所有其他值都是真实的。
由于空字符串是虚假值,因此不会将它们添加到新数组中。
我们将一个字符串拆分成一个数组,所以我们知道该数组将只包含字符串。
只有空字符串是假值。
所以我们不需要处理任何边缘情况,例如包含其他虚假值的数组,比如0
.
另一种方法是将Boolean()
构造函数传递给filter()
方法。
使用 Boolean() 拆分字符串删除任何空元素
这是一个三步过程:
- 使用该
split()
方法将字符串拆分为数组。 - 调用
filter()
数组上的方法。 Boolean()
将构造函数作为参数传递给filter()
方法。
const str = ' bobby hadz com '; const arr = str.split(' ').filter(Boolean); console.log(arr); // 👉️ [ 'bobby', 'hadz', 'com' ]
构造Boolean()
函数获取一个值并将其转换为其布尔表示形式。
console.log(Boolean('hello')); // 👉️ true console.log(Boolean(' ')); // 👉️ true console.log(Boolean('')); // 👉️ false
Boolean()
构造函数,转换为其布尔表示形式并返回。所有空字符串的计算结果false
都不会添加到新数组中。
拆分一个字符串,使用删除任何空元素match
如果你在一个空间上分裂,你也可以使用这个String.match()
方法。
const str = ' bobby hadz com '; const arr = str.match(/\S+/g) console.log(arr) // 👉️ [ 'bobby', 'hadz', 'com' ]
String.match方法将字符串与正则表达式进行匹配。
该方法返回一个包含匹配项(如果有)或未null
找到匹配项的数组。
我们向该match
方法传递了一个正则表达式。
正斜杠标记/ /
正则表达式的开始和结束。
该\S
字符匹配除空格以外的任何单个字符。
加号+
与前面的项目(任何非空白字符)匹配 1 次或多次。
我们使用g
(global) 标志是因为我们想要匹配所有出现的非空白字符,而不仅仅是第一次出现的。
就其整体而言,正则表达式匹配一个或多个非空白字符。
可以使用相同的方法拆分其他字符并删除空元素。
const str = ',bobby,hadz,com,'; const arr = str.match(/[^,]+/g) console.log(arr) // 👉️ [ 'bobby', 'hadz', 'com' ]
代码示例以逗号分隔。
正则表达式中的方括号称为字符类[]
。
插入^
符号表示“不是以下内容”。
正则表达式匹配一个或多个不是逗号的连续字符。
数组中不包含空元素,因为逗号根本不匹配。
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息:
- Split a String on Capital Letters using JavaScript
- Split a Full Name into First and Last in JavaScript
- Split a String and get First or Last Array Element in JS
- Split on the Last Occurrence of a String in JavaScript
- Split a Number into an Array in JavaScript
- Split a String at a specific Index using JavaScript
- How to Split a String by Newline in JavaScript
- How to Split a String by a Regex in JavaScript
- Split a String with multiple Separators using JavaScript
- How to Split a string by Spaces in JavaScript
- Split a String only on the First Occurrence of a Character
- Split a String by Special Characters in JavaScript
- Split a String every N characters in JavaScript