Как лучше сделать функцию обработки строки
Допустим есть потребность вывести спецсимволы.
можно сделать так
var entityMap = {
"&": "&",
"<": "<",
">": ">",
'"': '"',
"'": ''',
"/": '/'
};
function escapeHtml(string) {
return String(string).replace(/[&<>"'\/]/g, function (s) {
return entityMap[s];
});
}
alert(escapeHtml('<html>'));
т.е. объявились две левые сущности в пространстве имён Вопрос: не лучше ли сделать так? В чем минусы такого способа?
String.prototype.escapeChars = function() {
String.prototype.entityMap = String.prototype.entityMap || {
"&": "&",
"<": "<",
">": ">",
'"': '"',
"'": ''',
"/": '/'
};
return this.replace(/[&<>"'\/]/g, function (s) {return String.prototype.entityMap[s];});
}
alert('<html>'.escapeChars());
|
Цитата:
|
это на этом прекрасном форуме нарушение синтаксиса, после того как делаешь предварительный просмотр и сохраняешь пост,
'заменяется на апостроф и скрипт становится неработоспособным. я конечно оценил юмор ответа, но по существу есть что-нибудь? Где все эти господа теоретики, любители красоты кода? |
Palama,
Если код для внутреннего потребления, оберните всё в аноним
(function() {
var entityMap = {
"&": "&",
"<": "<",
">": ">",
'"': '"',
"'": ''',
"/": '/'
};
function escapeHtml(string) {
return String(string).replace(/[&<>"'\/]/g, function (s) {
return entityMap[s];
});
}
alert(escapeHtml('<html>'));
}());
Если для наружного, типично вводят единый объект для сайта/форума, к примеру:
var FORUM = {}
И привязываются к нему,(те же BB-коды) FORUM.BB_code={};FORUM.BB_code['B'];FORUM.BB_code['URL']; |
| Часовой пояс GMT +3, время: 22:06. |