假设我有这个字符串:
01234 ; 0123;0424 09234
如何通过两个参数' '
和';'
,
修剪单个元素
然后,仅选择长度为5
所以最后它返回这个数组:
["01234","09234"]
这个任务的最大问题是我不知道我应该如何分割字符串,因为我总是这样做:
a = "0123 9809; 04323 ";
b = a.split(' ').split(';')
我收到此错误:
TypeError: Object [object Array] has no method 'split'
感谢您的帮助!
答案 0 :(得分:8)
使用:
' 01234 ; 0123;0424 09234'.split(/\s|;/).filter(function (e) {
return e.trim().length === 5;
});
上面示例中的 split
接受用于拆分字符串的正则表达式。之后,我们使用high-order function filter
来过滤输入。
答案 1 :(得分:1)
.split()
适用于字符串,这就是你看到错误的原因 - 你在一个返回一个数组的字符串上调用它,并且他们试图在数组上再次调用它。有很多方法可以解决这个问题。
我很想做一个捷径,用分号替换所有空格,然后执行一个.split(';')
来生成数组,然后使用.filter()过滤出数组中的那些字符串符合你要找的长度。