AJAX 응답을 구문 분석하고 body 태그의 ID를 얻으려고합니다. jQuery는 body 태그에 대한 DOM 응답을 에뮬레이션 할 수 없기 때문에 jQuery를 통해이 작업을 수행 할 수 없습니다.IE8이 내 정규식을 인식하지 못합니다.
저는 이것을 여러 줄로 나눠서 오류를 찾아 냈습니다. 이것은 최신 브라우저에서 작동하지만 IE8에서는 실패합니다.
var bodyIDregex = new RegExp(/<body[^>]*id=["'](.*?)["']>/gi),
matched = html.match(bodyIDregex),
bodyID = bodyIDregex.exec(matched[0]);
bodyID = bodyID[1];
나는 변수 html의 값이 예상대로임을 확인했습니다.
어떤 도움이 필요합니까?
감사합니다.
, 내 생각 엔') (이것은 "g"플래그와 첫'regex.exec를 호출 한 후 '.match (정규식)'호출과의 시퀀스 함께 할 수있는 뭔가가있다 같은 정규식으로. '.exec'는 여러 번 호출되어 연속적인 일치를 산출 할 수 있기 때문에 "g"플래그는 정규 표현식에서 상태를 벗어날 수 있습니다. 나는 당신이'.match()'호출을 위해 다른 정규 표현식을 사용할 것을 제안한다. (아마 "g"플래그없이). 일치하는 샘플 텍스트를 포함했다면이 사실을 확인할 수는 있었지만이를 사용하지 않고 그냥 추측하고 있습니다. – jfriend00
@ paulsm4 : 틀렸어. 그런 식으로 jQuery는 실제로 결함이 있습니다. 전체 HTML 문서를 구문 분석 할 수 없습니다. 그리고 jQuery가 심지어 설계하지 않은 많은 것들이 있습니다 ... – Bergi
HTML 문서가 아닌 XML 문서로 결과를 해석하도록 설정된 경우 jQuery가 body 태그를 구문 분석 할 수 있는지 여부는 흥미 롭습니다 ... 하지만 솔직히 말해서, 그 중 하나가 작동할지 모르겠습니다. 물론, 유효한 XML (XHTML) 인 HTML 문서가 있어야한다는 제한이 있습니다. 그리고 나는 HTML5에 글을 썼다. 때로는 슬래시를 닫지 않고 XML 문서에 필요하다. –