2013-03-22 2 views
1

자바 스크립트 문자열에서 숫자 배열을 얻으시겠습니까?자바 스크립트에서 문자열의 숫자 배열을 얻는 방법

var slop = "I bought 3 but 8 4.2 of them, mmmmhghrhghrghghrgh456"; 

는 다음과 같은 배열을 얻을 수있는 방법 :

nums = [3, 8, 4.2, 456]; 

참고 : 나는 가능하면 jQuery를 사용하지 싶습니다 내가 다음 말해봐.

답변

4

이 작업을 수행 할 수 있습니다

var s = "I bought 3 but 8 4.2 of them, mmmmhghrhghrghghrgh456"; 
var nums = s.split(/[^\d\.]+/).map(parseFloat) 
    .filter(function(v){ return v===v }); 

결과 : [3, 8, 4.2, 456]

+2

일이 당신이 원하는 아니라면,이 (점을 무시) 전체 숫자로 일치하는 이전 정규식이었다. – j08691

+1

그건 절대적으로 환상적입니다. ''hello.45 "' – James

+2

+1 섹시하고 섹시합니다. 솔루션을 생각하는 동안 빠른 닌자 기술을 사용했습니다. –

1

기본 정규식 페칭 :

var string = 'I bought 3 but 8 4.2 of them, mmmmhghrhghrghghrgh456 hello.45'; 
var result = string.match(/((?:\d+\.?\d*)|(?:\.\d+))/g); 
console.log(result); 

결과 :

["3", "8", "4.2", "456", ".45"] 

편집

접두어가 붙지 않은 0.xx 소수 자릿수로 작동하도록 업데이트되었습니다.

var result = string.match(/(\d+\.?\d*)/g); 

올드 결과 : - 잘 했어

["3", "8", "4.2", "456", "45"] 
관련 문제