validatorjs / validator.js

String validation
MIT License
22.97k stars 2.28k forks source link

Funky behavior from Entities variable. #3

Closed PlNG closed 13 years ago

PlNG commented 13 years ago

I had some funky issues with moving the code in the entities variable, such as &shy (the soft hyphen) disappearing (JSLint says this is an unsafe character and I can see why now), as well as a weird session with closure compiler converting the html escaped symbols and literal characters to \ufffd in one pass (possibly more &shy behavior), so I thought it was best all around to just use a native escape.

Also, I fixed nbsp with the proper escape code which was originally was using a space, not sure if that was intentional or not. Here's a fixed up entities. var entities = { ' ': '\u00a0', '¡': '\u00a1', '¢': '\u00a2', '£': '\u00a3', '¤': '\u20ac', '¥': '\u00a5', '¦': '\u0160', '§': '\u00a7', '¨': '\u0161', '©': '\u00a9', 'ª': '\u00aa', '«': '\u00ab', '¬': '\u00ac', '­': '\u00ad', '®': '\u00ae', '¯': '\u00af', '°': '\u00b0', '±': '\u00b1', '²': '\u00b2', '³': '\u00b3', '´': '\u017d', 'µ': '\u00b5', '¶': '\u00b6', '·': '\u00b7', '¸': '\u017e', '¹': '\u00b9', 'º': '\u00ba', '»': '\u00bb', '¼': '\u0152', '½': '\u0153', '¾': '\u0178', '¿': '\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', '"': '\u0022', '<': '\u003c', '>': '\u003e', ''': '\u0027', '−': '\u2212', 'ˆ': '\u02c6', '˜': '\u02dc', 'Š': '\u0160', '‹': '\u2039', 'Œ': '\u0152', '‘': '\u2018', '’': '\u2019', '“': '\u201c', '”': '\u201d', '•': '\u2022', '–': '\u2013', '—': '\u2014', '™': '\u2122', 'š': '\u0161', '›': '\u203a', 'œ': '\u0153', 'Ÿ': '\u0178', 'ƒ': '\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', ' ': '\u2002', ' ': '\u2003', ' ': '\u2009', '‌': '\u200c', '‍': '\u200d', '‎': '\u200e', '‏': '\u200f', '‚': '\u201a', '„': '\u201e', '†': '\u2020', '‡': '\u2021', '…': '\u2026', '‰': '\u2030', '′': '\u2032', '″': '\u2033', '‾': '\u203e', '⁄': '\u2044', '€': '\u20ac', 'ℑ': '\u2111', '℘': '\u2118', 'ℜ': '\u211c', 'ℵ': '\u2135', '←': '\u2190', '↑': '\u2191', '→': '\u2192', '↓': '\u2193', '↔': '\u2194', '↵': '\u21b5', '⇐': '\u21d0', '⇑': '\u21d1', '⇒': '\u21d2', '⇓': '\u21d3', '⇔': '\u21d4', '∀': '\u2200', '∂': '\u2202', '∃': '\u2203', '∅': '\u2205', '∇': '\u2207', '∈': '\u2208', '∉': '\u2209', '∋': '\u220b', '∏': '\u220f', '∑': '\u2211', '∗': '\u2217', '√': '\u221a', '∝': '\u221d', '∞': '\u221e', '∠': '\u2220', '∧': '\u2227', '∨': '\u2228', '∩': '\u2229', '∪': '\u222a', '∫': '\u222b', '∴': '\u2234', '∼': '\u223c', '≅': '\u2245', '≈': '\u2248', '≠': '\u2260', '≡': '\u2261', '≤': '\u2264', '≥': '\u2265', '⊂': '\u2282', '⊃': '\u2283', '⊄': '\u2284', '⊆': '\u2286', '⊇': '\u2287', '⊕': '\u2295', '⊗': '\u2297', '⊥': '\u22a5', '⋅': '\u22c5', '⌈': '\u2308', '⌉': '\u2309', '⌊': '\u230a', '⌋': '\u230b', '⟨': '\u2329', '⟩': '\u232a', '◊': '\u25ca', '♠': '\u2660', '♣': '\u2663', '♥': '\u2665', '♦': '\u2666' };

chriso commented 13 years ago

I was aware of the encoding issue - just hadn't gotten around to fixing it. And the   definitely wasn't supposed to be a space! I've fixed up the lib and added you as a contributor. Want me to add your real name / email?

PlNG commented 13 years ago

No, just my handle: PlNG is fine. Thank you. :)