В моем серверном приложении (в Parse Cloud Code) я хочу сохранить некоторые строковые данные. Здесь есть объекты HTML, которые я хочу кодировать.
Поэтому я нашел решение с Javascript:
var txt = document.createElement("textarea");
txt.innerHTML = html;
return txt.value;
Этот код отлично работает на html-страницах, где существует document
. Но на сервере нет такой переменной.
Как я могу объявить переменную документа? Или, может быть, вы знаете другие решения для кодирования объектов HTML.
Поскольку я задал этот вопрос, я изучил JavaScript и AJAX. Итак, мое предложение будет использовать AJAX и JSON для связи между браузером и сервером.
function encode(r){
return r.replace(/[\x26\x0A\<>'"]/g,function(r){return"&#"+r.charCodeAt(0)+";"})
}
test.value=encode('How to encode\nonly html tags &<>\'" nice & fast!');
/*************
* \x26 is &ersand (it has to be first),
* \x0A is newline,
*************/
<textarea id=test rows=11 cols=55>www.WHAK.com</textarea>
Вы можете использовать html-сущности на узле, установить его так:
npm install html-entities
то у вас есть функции entities.encode(..)
и entities.decode(..)
:
var Entities = require('html-entities').XmlEntities;
entities = new Entities();
console.log(entities.encode('<>"\'&')); // <>"'&
есть больше примеров использования в gihub repo.
<string>.replace()
.