Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> htmlspecialchars для js 
:(
    Опции темы
CruorVult
Дата 11.12.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



может кто-то имеет уже готовое решение?
PM MAIL Skype   Вверх
Amphiluke
Дата 11.12.2009, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Минут за 15 можно наваять…  smile 
Код

/* старый вариант удален */


UPD: Расширил список поддерживаемых сущностей.
Автору топика, похоже, уже не нужно, но вдруг кому-нибудь еще пригодится…

Код

/************************************************************************
    Javascript counterpart of the PHP htmlspecialchars() function
    Copyright (c) 2009, Amphiluke
    Last modified: 2009-12-13
************************************************************************/

var specialchars = "\u0022\u0027\u0026\u002F\u003C\u003E\u00A0\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" +
    "\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7\u00B8" +
    "\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7\u00C8\u00C9" +
    "\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7\u00D8\u00D9\u00DA" +
    "\u00DB\u00DC\u00DD\u00DE\u00DF\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB" +
    "\u00EC\u00ED\u00EE\u00EF\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7\u00F8\u00F9\u00FA\u00FB\u00FC" +
    "\u00FD\u00FE\u00FF\u0152\u0153\u0160\u0161\u0178\u02C6\u02DC\u2002\u2003\u2009\u0192\u0391\u0392\u0393" +
    "\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5" +
    "\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD" +
    "\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03D1\u03D2\u03D6\u2022\u2026" +
    "\u2032\u2033\u203E\u2044\u2118\u2111\u211C\u2122\u2135\u2190\u2191\u2192\u2193\u2194\u21B5\u21D0\u21D1" +
    "\u21D2\u21D3\u21D4\u2200\u2202\u2203\u2205\u2207\u2208\u2209\u220B\u220F\u2212\u2217\u221A\u221D\u221E" +
    "\u2220\u22A5\u22A6\u2229\u222A\u222B\u2234\u223C\u2245\u2260\u2261\u2264\u2265\u2282\u2283\u2284\u2286" +
    "\u2287\u2295\u2297\u22A5\u22C5\u2308\u2309\u230A\u230B\u2329\u232A\u25CA\u2660\u2663\u2665\u2666";

var entities = [""", "&_#39;", "&", "&_#47;", "<", ">", " ", "¡", "¢", "£",
    "¤", "¥", "¦", "§", "¨", "©", "ª", "«", "&not", "­", "®",
    "¯", "°", "±", "²", "³", "´", "µ", "¶", "·", "¸",
    "¹", "º", "»", "¼", "½", "¾", "¿", "À", "Á",
    "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê",
    "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó",
    "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û", "Ü",
    "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å",
    "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î",
    "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "÷",
    "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ", "&Oelig;",
    "œ", "Š", "š", "Ÿ", "ˆ", "˜", " ", " ", " ", "ƒ",
    "Α", "Β", "Γ", "Δ", "Ε", "Ζ", "Η", "Θ", "Ι", "Κ",
    "Λ", "Μ", "Ν", "Ξ", "Ο", "Π", "Ρ", "Σ", "Τ", "Υ", "Φ",
    "Χ", "Ψ", "Ω", "α", "β", "γ", "δ", "ε", "ζ", "η",
    "θ", "ι", "κ", "λ", "μ", "ν", "ξ", "ο", "π", "ρ", "ς",
    "σ", "τ", "υ", "φ", "χ", "ψ", "ω", "ϑ", "ϒ", "ϖ",
    "•", "…", "′", "″", "‾", "⁄", "℘", "ℑ", "ℜ", "™",
    "ℵ", "←", "↑", "→", "↓", "↔", "↵", "⇐", "⇑", "⇒",
    "⇓", "⇔", "∀", "∂", "∃", "∅", "∇", "∈", "∉", "∋",
    "∏", "−", "∗", "√", "∝", "∞", "∠", "∧", "∨", "∩", "∪",
    "∫", "∴", "∼", "≈", "≠", "≡", "≤", "≥", "⊂", "⊃", "⊄",
    "⊆", "⊇", "⊕", "⊗", "⊥", "⋅", "⌈", "⌉", "⌊", "⌋",
    "⟨", "⟩", "◊", "♠", "♣", "♥", "♦"];

function htmlspecialchars(text, quote_style) {
    switch (quote_style) {
        case "ENT_NOQUOTES":
            entities[0] = "\"";
            entities[1] = "'";
            break;
        case "ENT_QUOTES":
            entities[0] = """;
            entities[1] = "&_#39;";
            break;
        default: /* "ENT_COMPAT" */
            entities[0] = """;
            entities[1] = "'";
            break;
    }
    var resultStr = "";
    var indx;
    for (var i = 0; i < text.length; i++) {
        indx = specialchars.indexOf(text.charAt(i));
        if (indx == -1) {
            resultStr += text.charAt(i);
        } else {
            resultStr += entities[indx];
        }
    }
    return resultStr;
}


Нужно убрать символ нижнего подчеркивания в &_#39; Поставил, потому что форум преобразует в символ '.

Пример использования:
Код

<form action="#">
    <textarea name="tarea" cols="75" rows="10"></textarea><br />
    <input type="button" value="htmlspecialchars" onclick="this.form.tarea.value += '\n' + htmlspecialchars(this.form.tarea.value, 'ENT_QUOTES');" />
    <input type="button" value="htmlspecialchars" onclick="document.getElementById('entity').innerHTML = htmlspecialchars(this.form.tarea.value, 'ENT_QUOTES');" />
    <input type="button" value="show all supported entities" onclick="this.form.tarea.value = specialchars;" />
    <div id="entity"></div>
</form>


Это сообщение отредактировал(а) Amphiluke - 12.12.2009, 23:01
PM   Вверх
CruorVult
Дата 13.12.2009, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



Amphiluke, спасибо.  smile мог конечно и сам написать но времени нету, а работы куча
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1086 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.