
☽
  
Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009
Репутация: 35 Всего: 112
|
Минут за 15 можно наваять… Код | /* старый вариант удален */
|
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;", "<", ">", " ", "¡", "¢", "£", "¤", "¥", "¦", "§", "¨", "©", "ª", "«", "¬", "­", "®", "¯", "°", "±", "²", "³", "´", "µ", "¶", "·", "¸", "¹", "º", "»", "¼", "½", "¾", "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "÷", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ", "&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
|