Я разрабатываю сайт, на котором пользователь может написать описание в текстовом поле. Это описание может быть похоже на html-контент со всеми тегами html (<b></b><a href=''/> etc...
).W3C Html Validator in my textArea
Иногда пользователь совершает ошибки (например, написание <a href='"/>
или не закрывает теги), и когда это описание отображается на моем веб-сайте, он разбивает всю страницу.
Я ищу библиотеку javascript или другой инструмент для проверки содержимого textarea. Что-то похожее на jsfiddle, но на моем сайте.
Благодаря
UPDATE
Для того чтобы работать с моим приложением, я упростить этот процесс. Вот код
HTML
<div>
<div class="row">
<textarea id="idTextArea" style="width:300px; height:100px;"></textarea>
<button class="btn btn-default" id="idButton">Validate</button>
</div>
</div>
Javascript
<script type="text/javascript">
$("#idButton").click(function() {
var textToTest = "<!DOCTYPE html><html><head><title>Test</title></head><body>" + $("#idTextArea").val() + "</body></html>";
// emulate form post
var formData = new FormData();
formData.append('out', 'json');
formData.append('content', textToTest);
// make ajax call
$.ajax({
url: "http://html5.validator.nu/",
data: formData,
dataType: "json",
type: "POST",
processData: false,
contentType: false,
success: function (data) {
var text = "";
for(var i = 0; i < data.messages.length; i++)
{
var extract = data.messages[i].extract;
var firstColumn = data.messages[i].firstColumn;
var hiliteStart = data.messages[i].hiliteStart;
var hiliteLength = data.messages[i].hiliteLength;
var lastColumn = data.messages[i].lastColumn;
var lastLine = data.messages[i].lastLine;
var type = data.messages[i].type;
var message = data.messages[i].message;
text += "Type : " + type;
text += "Message : " + message;
}
if (text.length > 0) {
alert(text);
}
},
error: function() {
alert(arguments);
}
});
})
Это на самом деле не так просто. Вы могли бы проанализировать ввод, извлекая каждую пару тегов (или самозакрывающийся тег) и анализируя это с помощью некоторого регулярного выражения. – Chris
На самом деле это очень плохая идея, чтобы пользователи могли использовать все теги html, потому что вы разрешаете XSS в своем приложении. –