2010-03-08 6 views
2

정규 표현식을 사용하여 자바 스크립트로 문자열을 분할하려고합니다. 크롬과 FF에서Internet Explorer의 Javascript RegEx 문제

var status = "This is a test http://yfrog.com/5y6eruj";  
var regexp = /(http:\/\/yfrog\.com(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi; 
matchParts = status.split(regexp); 
alert(matchParts); 

을 내가 matchParts을 경고 할 때 텍스트 다음 URL을 포함하는 배열입니다 다음과 같이 내 코드입니다. IE에서는 그러나 matchParts 그냥 텍스트이며 URL이 사라졌습니다!

IE에 이상한 버그가 있거나 정규식이 적합하지 않습니다 ... 도와주세요!

답변

4

이 버그 때문에 나는이에 대해 "분리"를 사용하지 않을 : http://blog.stevenlevithan.com/archives/cross-browser-split

대신

var matchParts = regexp.exec(status); 

을보십시오. 당신은 조금 (나는 그것을 시도하고 업데이 트됩니다) 정규식과 함께해야 할 수도 있습니다.

편집(.*)을 정규식의 시작 부분에 추가하면 앞 글자도 함께 선택하게됩니다.

+0

정말 고마워! IE에서 exec()를 사용하면 :) –