Проверить строку на соответствие XML.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
<script type="text/javascript"> function xmlValidate( sValue ){ if( sValue ){ // вырезаем инструкции sValue = sValue.replace( /<\?.*\?>/g, '' ); // вырезаем doctype sValue = sValue.replace( /<\!DOCTYPE.*?>/g, '' ); // вырезаем коменты и CDATA var rTags = /(<\x21--(.|[\n\r])?-->|<\!\[CDATA\[(.|[\n\r])?\]\]>)/g; while( sValue.search( rTags ) >= 0 ){ sValue = sValue.replace( rTags, '' ); } // вырезаем entities sValue = sValue.replace( /&(\w+|#\d+);/gi, '' ); if( sValue.search( '&' ) >= 0 ){ return false; } // вырезаем одинарные теги sValue = sValue.replace( /<\w[-\w:]*(\s+[-\w:]+\s*=\s*(["'])[^<>]*\2)*\s*\/>/gi, '' ); // вырезаем двойные теги var rTags = /<(\w[-\w:]*)(\s+[-\w:]+\s*=\s*(["'])[^<>]*\3)*\s*>([^<]*)<\/\1>/gi; while( sValue.search( rTags ) >= 0 ){ sValue = sValue.replace( rTags, '$4' ); } if( sValue.search( '<' ) >= 0 ){ return false; } return true; }else{ return true; } } </script> <form name="example" onsubmit="return false"> <textarea name="text" style="width: 100%; height: 10em;"></textarea> <input type="button" value="Проверить" onclick="if( xmlValidate( document.example.text.value ) ) { alert( 'Все хорошо!' ) }else{ alert( 'Это не XML!' ); }" /> </form>