2011-01-20 9 views
0

IE9 베타 버전에서 다음이 작동하지 않는 이유는 무엇입니까? IE8 고급 (또는 IE9 실행 호환 모드) :Regex가 IE9에서 작동하지 않습니다.

if(b.msie){ 
    b.ver = /MSIE (\d+(.\d+)?)/.exec(ua)[1]; 
}else if(b.mozilla){ 
    b.ver = /Firefox\/(\d+(.\d+)?)/.exec(ua)[1]; 
}else if(b.opera){ 
    b.ver = /Opera\/? ?(\d+(\.\d+)?)/.exec(ua)[1]; 
}else if(b.safari){ 
    b.ver = /Version\/(\d+(\.\d+)+)/.exec(ua)[1]; 
}else if(b.chrome){ 
    b.ver = /Chrome\/(\d+(\.\d+)+)/.exec(ua)[1]; 
} 
+4

"작동하지 않는"것은 무엇입니까? 에러 메시지? 예기치 않은 결과가 있습니까? 아무 반응이 없습니다? 컴퓨터가 터지니? –

+0

차 대신 커피를 만드나요? –

+2

IE9가 이전 버전과 다른 방식으로 사용자 에이전트를보고 할 수 있으며 문자열과 일치하지 않을 수 있습니까? 또한 브라우저 검색이 어쨌든 나쁜 생각 일 것이라고 생각 해본 적이 있습니까? 기능 탐지는 대개 브라우저 탐지보다 낫습니다. 이와 같은 문제로 인해 브라우저 탐지는 새 버전이 출시 될 때 중단되는 경향이 있습니다 (설명 된대로). Plus 사용자 에이전트 문자열은 완전히 무시되거나 심지어 차단 될 수 있습니다. 즉, 브라우저 검색 스크립트가 사용자에 의해 속일 수 있습니다. – Spudley

답변

0

원하지 않으십니까? String.match()? 예 : b.ver = ua.match(/MSIE (\d+(\.\d+)?)/)[1];
문자 클래스 외부의 .도 이스케이프 처리해야합니다.

관련 문제