String to array只选择长度为6的元素

时间:2014-03-08 18:43:42

标签: javascript jquery arrays

假设我有这个字符串:

 01234  ; 0123;0424 09234

如何通过两个参数' '';'

拆分这些字符串

修剪单个元素

然后,仅选择长度为5

的数组元素

所以最后它返回这个数组:

["01234","09234"]

这个任务的最大问题是我不知道我应该如何分割字符串,因为我总是这样做:

 a = "0123 9809; 04323 ";
 b = a.split(' ').split(';')

我收到此错误:

TypeError: Object [object Array] has no method 'split'

感谢您的帮助!

2 个答案:

答案 0 :(得分:8)

使用:

' 01234  ; 0123;0424 09234'.split(/\s|;/).filter(function (e) {
  return e.trim().length === 5;
});
上面示例中的

split接受用于拆分字符串的正则表达式。之后,我们使用high-order function filter来过滤输入。

all modern browsers有效。

答案 1 :(得分:1)

.split()适用于字符串,这就是你看到错误的原因 - 你在一个返回一个数组的字符串上调用它,并且他们试图在数组上再次调用它。有很多方法可以解决这个问题。

我很想做一个捷径,用分号替换所有空格,然后执行一个.split(';')来生成数组,然后使用.filter()过滤出数组中的那些字符串符合你要找的长度。