2014-01-07 4 views
1

안녕하세요 저는 JavaScript에서 초보자이고 문자열에서 치수를 얻으려고합니다.문자열에서 치수를 얻는 방법?

var str = '1.jpeg (JPEG Image, 1298 × 1600 pixels)'; 
var index1 = str.indexOf('('), index2 = str.indexOf(')'); 
str = str.substr(index1+1, (index2-index1-1)); 
str = str.split('×'); 
alert(str); 

내가 × 정규 X 아니다 1298 × 1600 참고로 출력을 얻을 수 없습니다 :이 코드입니다. 여기에 라이브 버전이 있습니다 http://jsfiddle.net/s5b4E/

답변

0

시도는 다음과 같이 정규 표현식과 경우 String.match를 사용 :

var str = '1.jpeg (JPEG Image, 1298 × 1600 pixels)'; 

var res = str.match(/[0-9]+\s[×]\s[0-9]+/); 

이 표현이 어떻게 작동하는지 이해하지 않는 경우

, 그냥 내가 거 상세한 정보를 제공 코멘트.

Here is a fiddle

0

이것은 Regex를 사용하면 쉬운 작업입니다. 이런 식으로 뭔가가 작동합니다 :

var str = '1.jpeg (JPEG Image, 1298 × 1600 pixels)'; 
var regex = /\d+ × \d+/; 
var result = str.match(regex)[0]; 

설명 : \d+은 임의의 숫자와 일치하고  × 는 중간 부분 일치합니다. 이들을 함께 결합하면 찾고있는 결과와 일치하게됩니다.

Here is a working example


참고 :이 정규식은 가장 큰 하나는 공백 결과 주변에 항상 존재하고 × 주위의 공백은 항상 하나라는 것, 형식에 대한 가정의 부부를 만든다 양쪽. 형식이 변경 될 수 있다면 정규 표현식을 적용 할 수 있도록 알려주십시오. 이 코드는 또한 일치가 보장 될 것이라고 가정하지만 형식이 상당히 안정적으로 보일 때 이것이 공정하다고 생각합니다. 물론 어떤 가정이 괜찮은지 알 수 있습니다.

+0

이유? – musefan

0

이 시도 :

var str = "1.jpeg (JPEG Image, 1298 × 1600 pixels)"; 
var res = str.split(" ")[3] + "x" + str.split(" ")[5]; 

"X"진짜와 문자열로 당신에게 해결책을 줄 것이다 그. 원하는 경우 x 및 y 해상도를 정수로 직접 사용할 수도 있습니다.

0

정규식 갈 수있는 좋은 방법이 될 것 같다. 여기서 I는 유사한 요소의 배열을 반환 할 match를 사용하여 다음 downvote위한

var regex = /\s(\d+)\s×\s(\d+)\s/ 
var matches = str.match(regex); // matches[1] = 1298, matches[2] = 1600 

Fiddle

관련 문제