Проверить строку на соответствие 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>