htmlEntities.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. // copy from https://github.com/babel/babel/blob/8d17ae6/packages/babel-parser/src/plugins/jsx/xhtml.ts
  2. const entities = {
  3. quot: '\u0022',
  4. amp: '&',
  5. apos: '\u0027',
  6. lt: '<',
  7. gt: '>',
  8. nbsp: '\u00A0',
  9. iexcl: '\u00A1',
  10. cent: '\u00A2',
  11. pound: '\u00A3',
  12. curren: '\u00A4',
  13. yen: '\u00A5',
  14. brvbar: '\u00A6',
  15. sect: '\u00A7',
  16. uml: '\u00A8',
  17. copy: '\u00A9',
  18. ordf: '\u00AA',
  19. laquo: '\u00AB',
  20. not: '\u00AC',
  21. shy: '\u00AD',
  22. reg: '\u00AE',
  23. macr: '\u00AF',
  24. deg: '\u00B0',
  25. plusmn: '\u00B1',
  26. sup2: '\u00B2',
  27. sup3: '\u00B3',
  28. acute: '\u00B4',
  29. micro: '\u00B5',
  30. para: '\u00B6',
  31. middot: '\u00B7',
  32. cedil: '\u00B8',
  33. sup1: '\u00B9',
  34. ordm: '\u00BA',
  35. raquo: '\u00BB',
  36. frac14: '\u00BC',
  37. frac12: '\u00BD',
  38. frac34: '\u00BE',
  39. iquest: '\u00BF',
  40. Agrave: '\u00C0',
  41. Aacute: '\u00C1',
  42. Acirc: '\u00C2',
  43. Atilde: '\u00C3',
  44. Auml: '\u00C4',
  45. Aring: '\u00C5',
  46. AElig: '\u00C6',
  47. Ccedil: '\u00C7',
  48. Egrave: '\u00C8',
  49. Eacute: '\u00C9',
  50. Ecirc: '\u00CA',
  51. Euml: '\u00CB',
  52. Igrave: '\u00CC',
  53. Iacute: '\u00CD',
  54. Icirc: '\u00CE',
  55. Iuml: '\u00CF',
  56. ETH: '\u00D0',
  57. Ntilde: '\u00D1',
  58. Ograve: '\u00D2',
  59. Oacute: '\u00D3',
  60. Ocirc: '\u00D4',
  61. Otilde: '\u00D5',
  62. Ouml: '\u00D6',
  63. times: '\u00D7',
  64. Oslash: '\u00D8',
  65. Ugrave: '\u00D9',
  66. Uacute: '\u00DA',
  67. Ucirc: '\u00DB',
  68. Uuml: '\u00DC',
  69. Yacute: '\u00DD',
  70. THORN: '\u00DE',
  71. szlig: '\u00DF',
  72. agrave: '\u00E0',
  73. aacute: '\u00E1',
  74. acirc: '\u00E2',
  75. atilde: '\u00E3',
  76. auml: '\u00E4',
  77. aring: '\u00E5',
  78. aelig: '\u00E6',
  79. ccedil: '\u00E7',
  80. egrave: '\u00E8',
  81. eacute: '\u00E9',
  82. ecirc: '\u00EA',
  83. euml: '\u00EB',
  84. igrave: '\u00EC',
  85. iacute: '\u00ED',
  86. icirc: '\u00EE',
  87. iuml: '\u00EF',
  88. eth: '\u00F0',
  89. ntilde: '\u00F1',
  90. ograve: '\u00F2',
  91. oacute: '\u00F3',
  92. ocirc: '\u00F4',
  93. otilde: '\u00F5',
  94. ouml: '\u00F6',
  95. divide: '\u00F7',
  96. oslash: '\u00F8',
  97. ugrave: '\u00F9',
  98. uacute: '\u00FA',
  99. ucirc: '\u00FB',
  100. uuml: '\u00FC',
  101. yacute: '\u00FD',
  102. thorn: '\u00FE',
  103. yuml: '\u00FF',
  104. OElig: '\u0152',
  105. oelig: '\u0153',
  106. Scaron: '\u0160',
  107. scaron: '\u0161',
  108. Yuml: '\u0178',
  109. fnof: '\u0192',
  110. circ: '\u02C6',
  111. tilde: '\u02DC',
  112. Alpha: '\u0391',
  113. Beta: '\u0392',
  114. Gamma: '\u0393',
  115. Delta: '\u0394',
  116. Epsilon: '\u0395',
  117. Zeta: '\u0396',
  118. Eta: '\u0397',
  119. Theta: '\u0398',
  120. Iota: '\u0399',
  121. Kappa: '\u039A',
  122. Lambda: '\u039B',
  123. Mu: '\u039C',
  124. Nu: '\u039D',
  125. Xi: '\u039E',
  126. Omicron: '\u039F',
  127. Pi: '\u03A0',
  128. Rho: '\u03A1',
  129. Sigma: '\u03A3',
  130. Tau: '\u03A4',
  131. Upsilon: '\u03A5',
  132. Phi: '\u03A6',
  133. Chi: '\u03A7',
  134. Psi: '\u03A8',
  135. Omega: '\u03A9',
  136. alpha: '\u03B1',
  137. beta: '\u03B2',
  138. gamma: '\u03B3',
  139. delta: '\u03B4',
  140. epsilon: '\u03B5',
  141. zeta: '\u03B6',
  142. eta: '\u03B7',
  143. theta: '\u03B8',
  144. iota: '\u03B9',
  145. kappa: '\u03BA',
  146. lambda: '\u03BB',
  147. mu: '\u03BC',
  148. nu: '\u03BD',
  149. xi: '\u03BE',
  150. omicron: '\u03BF',
  151. pi: '\u03C0',
  152. rho: '\u03C1',
  153. sigmaf: '\u03C2',
  154. sigma: '\u03C3',
  155. tau: '\u03C4',
  156. upsilon: '\u03C5',
  157. phi: '\u03C6',
  158. chi: '\u03C7',
  159. psi: '\u03C8',
  160. omega: '\u03C9',
  161. thetasym: '\u03D1',
  162. upsih: '\u03D2',
  163. piv: '\u03D6',
  164. ensp: '\u2002',
  165. emsp: '\u2003',
  166. thinsp: '\u2009',
  167. zwnj: '\u200C',
  168. zwj: '\u200D',
  169. lrm: '\u200E',
  170. rlm: '\u200F',
  171. ndash: '\u2013',
  172. mdash: '\u2014',
  173. lsquo: '\u2018',
  174. rsquo: '\u2019',
  175. sbquo: '\u201A',
  176. ldquo: '\u201C',
  177. rdquo: '\u201D',
  178. bdquo: '\u201E',
  179. dagger: '\u2020',
  180. Dagger: '\u2021',
  181. bull: '\u2022',
  182. hellip: '\u2026',
  183. permil: '\u2030',
  184. prime: '\u2032',
  185. Prime: '\u2033',
  186. lsaquo: '\u2039',
  187. rsaquo: '\u203A',
  188. oline: '\u203E',
  189. frasl: '\u2044',
  190. euro: '\u20AC',
  191. image: '\u2111',
  192. weierp: '\u2118',
  193. real: '\u211C',
  194. trade: '\u2122',
  195. alefsym: '\u2135',
  196. larr: '\u2190',
  197. uarr: '\u2191',
  198. rarr: '\u2192',
  199. darr: '\u2193',
  200. harr: '\u2194',
  201. crarr: '\u21B5',
  202. lArr: '\u21D0',
  203. uArr: '\u21D1',
  204. rArr: '\u21D2',
  205. dArr: '\u21D3',
  206. hArr: '\u21D4',
  207. forall: '\u2200',
  208. part: '\u2202',
  209. exist: '\u2203',
  210. empty: '\u2205',
  211. nabla: '\u2207',
  212. isin: '\u2208',
  213. notin: '\u2209',
  214. ni: '\u220B',
  215. prod: '\u220F',
  216. sum: '\u2211',
  217. minus: '\u2212',
  218. lowast: '\u2217',
  219. radic: '\u221A',
  220. prop: '\u221D',
  221. infin: '\u221E',
  222. ang: '\u2220',
  223. and: '\u2227',
  224. or: '\u2228',
  225. cap: '\u2229',
  226. cup: '\u222A',
  227. int: '\u222B',
  228. there4: '\u2234',
  229. sim: '\u223C',
  230. cong: '\u2245',
  231. asymp: '\u2248',
  232. ne: '\u2260',
  233. equiv: '\u2261',
  234. le: '\u2264',
  235. ge: '\u2265',
  236. sub: '\u2282',
  237. sup: '\u2283',
  238. nsub: '\u2284',
  239. sube: '\u2286',
  240. supe: '\u2287',
  241. oplus: '\u2295',
  242. otimes: '\u2297',
  243. perp: '\u22A5',
  244. sdot: '\u22C5',
  245. lceil: '\u2308',
  246. rceil: '\u2309',
  247. lfloor: '\u230A',
  248. rfloor: '\u230B',
  249. lang: '\u2329',
  250. rang: '\u232A',
  251. loz: '\u25CA',
  252. spades: '\u2660',
  253. clubs: '\u2663',
  254. hearts: '\u2665',
  255. diams: '\u2666',
  256. };
  257. module.exports = new RegExp(`^(${Object.values(entities).join('|')})+$`);