2013-08-08 2 views
0

나는 <textEntryInteraction responseIdentifier="RESPONSE" expectedLength="15"/>과 같은 것으로 일치 할 예정이며 한 번만 발생하기를 원합니다. /<textEntryInteraction [^>]+\/>/g을 사용하여 태그를 검색하고 일치 시키면 왜 pattern.test(xml)이 false를 반환하는지 알 수 없습니다.JavaScript 정규식 xml 태그

그러나 /<textEntryInteraction [^>]+\/>/을 사용하면 true를 반환합니다.

누구든지 나를 도와 줄 수 있습니까?

+1

왜 XML 구문 분석기를 사용하지 않습니까? 필요한 읽기 : http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –

+0

@MattBall XML에 대한 루트 노드가 둘 이상인 경우 XML 파서에서 감지 할 수 있습니까? – benleung

+0

틀린가? 여기 당신의 패턴을 시도하고 그것은 사실을 반환합니다. 어쩌면 당신은 "g"대신에 "ig"를 써야 대소 문자를 무시할 수 있습니다. – yaoxing

답변

0

내가 당신이라면이 유형의 작업 대신 정규식 대신 jQuery을 심각하게 고려할 것입니다. 이런 식으로 할 수 있습니다.

var $xml = $($.parseXML(yourXMLcontent)); 
var $textEntries = $xml.find('textEntryInteraction'); 

그러면 filter your textEntries by attribute values이 될 수 있습니다.

filter function

+0

textEntryInteraction이 없으면이 사례를 처리 할 수 ​​있습니까? – benleung

+1

예, "find"및 "filter"함수는 모두 배열을 반환합니다. 반환 값의 길이를 확인하십시오. – Fuzzley