2016-05-31 6 views
3

"T"가 & "L"인 분리 기호로 두 부분으로 문자열을 분할하려고합니다.JavaScript를 사용하여 다음 문자열에서 숫자를 찾는 방법은 무엇입니까?

T49.80000305175781L60.00000190734863

그래서, 이러한 요소 배열을 기대 해요 :

[ "49.80000305175781", "60.00000190734863"]

나는이 시도했다 그러나 그들은 작동하지 않습니다

.

var xPos = xPos.split('T', 'L'); //Returns empty 
    var xPos = xPos.split(/T/, /L/); //Returns empty 
    var xPos = xPos.split(/T/); //Returns: ["", "49.80000305175781L60.00000190734863"] 

최상의 접근 방법은 무엇입니까?

+0

가능한 복제 [어떻게 자바 스크립트를 사용하여 문자열에서 번호를 찾을 수] (http://stackoverflow.com/questions/1623221/how-to-find-a-number-in-a -string-using-javascript) –

답변

12

긍정적 인 미리보기가있는 정규식을 사용할 수 있습니다.

또는 문자없이

console.log('T49.80000305175781L60.00000190734863'.split(/(?=[TL])/));

, 문자가 나타납니다 단지 분할.

console.log('T49.80000305175781L60.00000190734863'.split(/[TL]/));
그냥 완전성에 대해

, 한 단계

console.log('T49.80000305175781L60.00000190734863'.match(/[^TL]+/g));

+0

처음에 빈 결과가 나타나는 이유는 무엇입니까? (두 번째 예에서) –

+1

"T"앞 부분. –

+1

@Mjukis : 빈 값을 필터링하는 방법은 여기를 참고하십시오 : http://stackoverflow.com/a/2843625/1166642 –

1

분할에 String.match과 제안은 두 개의 선택적 인수를 취합니다. 첫 번째는 구분 기호이고 두 번째 것은 제한입니다. 설명서 here을 찾을 수 있습니다. 당신이 정규식을 사용합니다 여러 구분 기호로 분할하려는 경우

는 :

console.log('T49.80000305175781L60.00000190734863'.split(/T|L/));

1

Ninas의 대답은 위대하다! 정말 진심이다. 하지만이 숫자/배열이 더 많을 경우 또는 니나 (Nina)와 비슷한 방식을 사용할 수 있지만, 모든 것을 선언 할 필요없이 문자에 정규 표현식을 사용하여 모든 값을 얻으려는 경우에는 더 흥미롭게 만들 수 있습니다. 편지의. 문자로

포함 : 문자없이

console.log('T49.80000305175781L60.00000190734863C34.534623460304040003'.split(/(?=[a-zA-Z])/));

:

console.log('T49.80000305175781L60.00000190734863C34.534623460304040003'.split(/[a-zA-Z]/));

1

난 당신이 분할을 사용할 수 있다고 생각하지 않습니다 그런 식의 여러 구분 기호가 있습니다.

정규식을 사용하여 문자열을 분할 할 수 있습니다.

xPos.split(/T|L/g) 

.

3

당신은 그냥 공백 문자와 문자를 대체 RegExp/\d+\.\d+/g

console.log("T49.80000305175781L60.00000190734863".match(/\d+\.\d+/g))

+0

실제로 이것은 가장 유연하고 최상의 솔루션입니다. – thepio

0

.match()를 사용하여 새로운 변수로 해당 문자열을 저장할 수 있습니다. 당신은 모든 숫자를 얻을 것이다

관련 문제