2012-06-20 6 views
0

값은 12 23 345 3454 21입니다.공백에서 추출 숫자

이 배열에서 숫자를 가져 와서 배열에 저장해야하므로 내 배열은 values = new Array(12,23,345,3454,21);처럼 보일 것입니다.

제 문제는 공백을 제거 할 수 있지만 1223345345421으로 나타납니다.

답변

7

split(" ")을 사용하여 문자열을 공백으로 분리 할 수 ​​있습니다. 하지 않을 수 있습니다) (트림 @Sangdol으로

언급했다

> var numbers_in_string = " 12 23 345 3454 21 "; 
> var numbers_in_array = numbers_in_string.trim().split(/\s+/); 
> console.log(numbers_in_arrays) 
["12", "23", "345", "3454", "21"] 

편집 :

는 여러 공백 문자를 따라 선행 및 후행 공백 및 분할 트림한다, 더 철저합니다 IE9에서 작동하므로 one of these solutions을 포함하여 IE9에 trim() 기능을 추가 할 수 있습니다. 또는 trim()replace(/^\s+|\s+$/g, '')으로 대체하십시오. 어느 솔루션이든 브라우저 간 호환성을위한 대안으로 작동합니다. 이 같은 패턴이 있다면

.replace(/^\s+|\s+$/g, '').split(/\s+/) 
+2

주의하십시오. 'trim '은 IE9에서는 작동하지 않습니다. –

+2

나중에 요소를 숫자로 변환하지 않아도되므로 솔루션 끝에 다음을 추가 할 수 있습니다. .map (function (val) {return parseInt (val, 10);}) – Jules

1

을 대안으로 분할, 당신은 일치를 사용할 수 있습니다

' 12 23 345 3454 21 '.match(/\d+/g); //12,23,345,3454,21 

추출하려는 패턴과 관련이 있으며, 적합하지 않을 수도 있습니다. 개입 된 불일치 (공백 포함)가 반환되지 않도록 일치 패턴 만 가져옵니다.

관련 문제