Diacritic.js 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393
  1. // Copyright 2019 Mathias Bynens. All rights reserved.
  2. // This code is governed by the BSD license found in the LICENSE file.
  3. /*---
  4. author: Mathias Bynens
  5. description: >
  6. Unicode property escapes for `Diacritic`
  7. info: |
  8. Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
  9. Unicode v12.1.0
  10. esid: sec-static-semantics-unicodematchproperty-p
  11. features: [regexp-unicode-property-escapes]
  12. includes: [regExpUtils.js]
  13. ---*/
  14. const matchSymbols = buildString({
  15. loneCodePoints: [
  16. 0x00005E,
  17. 0x000060,
  18. 0x0000A8,
  19. 0x0000AF,
  20. 0x0000B4,
  21. 0x00037A,
  22. 0x000559,
  23. 0x0005BF,
  24. 0x0005C4,
  25. 0x00093C,
  26. 0x00094D,
  27. 0x000971,
  28. 0x0009BC,
  29. 0x0009CD,
  30. 0x000A3C,
  31. 0x000A4D,
  32. 0x000ABC,
  33. 0x000ACD,
  34. 0x000B3C,
  35. 0x000B4D,
  36. 0x000BCD,
  37. 0x000C4D,
  38. 0x000CBC,
  39. 0x000CCD,
  40. 0x000D4D,
  41. 0x000DCA,
  42. 0x000E4E,
  43. 0x000EBA,
  44. 0x000F35,
  45. 0x000F37,
  46. 0x000F39,
  47. 0x000FC6,
  48. 0x001037,
  49. 0x00108F,
  50. 0x0017DD,
  51. 0x001A7F,
  52. 0x001B34,
  53. 0x001B44,
  54. 0x001CED,
  55. 0x001CF4,
  56. 0x001FBD,
  57. 0x002E2F,
  58. 0x0030FC,
  59. 0x00A66F,
  60. 0x00A67F,
  61. 0x00A8C4,
  62. 0x00A953,
  63. 0x00A9B3,
  64. 0x00A9C0,
  65. 0x00A9E5,
  66. 0x00AAF6,
  67. 0x00FB1E,
  68. 0x00FF3E,
  69. 0x00FF40,
  70. 0x00FF70,
  71. 0x00FFE3,
  72. 0x0102E0,
  73. 0x011173,
  74. 0x0111C0,
  75. 0x01133C,
  76. 0x01134D,
  77. 0x011442,
  78. 0x011446,
  79. 0x01163F,
  80. 0x01172B,
  81. 0x0119E0,
  82. 0x011A34,
  83. 0x011A47,
  84. 0x011A99,
  85. 0x011C3F,
  86. 0x011D42,
  87. 0x011D97
  88. ],
  89. ranges: [
  90. [0x0000B7, 0x0000B8],
  91. [0x0002B0, 0x00034E],
  92. [0x000350, 0x000357],
  93. [0x00035D, 0x000362],
  94. [0x000374, 0x000375],
  95. [0x000384, 0x000385],
  96. [0x000483, 0x000487],
  97. [0x000591, 0x0005A1],
  98. [0x0005A3, 0x0005BD],
  99. [0x0005C1, 0x0005C2],
  100. [0x00064B, 0x000652],
  101. [0x000657, 0x000658],
  102. [0x0006DF, 0x0006E0],
  103. [0x0006E5, 0x0006E6],
  104. [0x0006EA, 0x0006EC],
  105. [0x000730, 0x00074A],
  106. [0x0007A6, 0x0007B0],
  107. [0x0007EB, 0x0007F5],
  108. [0x000818, 0x000819],
  109. [0x0008E3, 0x0008FE],
  110. [0x000951, 0x000954],
  111. [0x000AFD, 0x000AFF],
  112. [0x000D3B, 0x000D3C],
  113. [0x000E47, 0x000E4C],
  114. [0x000EC8, 0x000ECC],
  115. [0x000F18, 0x000F19],
  116. [0x000F3E, 0x000F3F],
  117. [0x000F82, 0x000F84],
  118. [0x000F86, 0x000F87],
  119. [0x001039, 0x00103A],
  120. [0x001063, 0x001064],
  121. [0x001069, 0x00106D],
  122. [0x001087, 0x00108D],
  123. [0x00109A, 0x00109B],
  124. [0x00135D, 0x00135F],
  125. [0x0017C9, 0x0017D3],
  126. [0x001939, 0x00193B],
  127. [0x001A75, 0x001A7C],
  128. [0x001AB0, 0x001ABD],
  129. [0x001B6B, 0x001B73],
  130. [0x001BAA, 0x001BAB],
  131. [0x001C36, 0x001C37],
  132. [0x001C78, 0x001C7D],
  133. [0x001CD0, 0x001CE8],
  134. [0x001CF7, 0x001CF9],
  135. [0x001D2C, 0x001D6A],
  136. [0x001DC4, 0x001DCF],
  137. [0x001DF5, 0x001DF9],
  138. [0x001DFD, 0x001DFF],
  139. [0x001FBF, 0x001FC1],
  140. [0x001FCD, 0x001FCF],
  141. [0x001FDD, 0x001FDF],
  142. [0x001FED, 0x001FEF],
  143. [0x001FFD, 0x001FFE],
  144. [0x002CEF, 0x002CF1],
  145. [0x00302A, 0x00302F],
  146. [0x003099, 0x00309C],
  147. [0x00A67C, 0x00A67D],
  148. [0x00A69C, 0x00A69D],
  149. [0x00A6F0, 0x00A6F1],
  150. [0x00A700, 0x00A721],
  151. [0x00A788, 0x00A78A],
  152. [0x00A7F8, 0x00A7F9],
  153. [0x00A8E0, 0x00A8F1],
  154. [0x00A92B, 0x00A92E],
  155. [0x00AA7B, 0x00AA7D],
  156. [0x00AABF, 0x00AAC2],
  157. [0x00AB5B, 0x00AB5F],
  158. [0x00ABEC, 0x00ABED],
  159. [0x00FE20, 0x00FE2F],
  160. [0x00FF9E, 0x00FF9F],
  161. [0x010AE5, 0x010AE6],
  162. [0x010D22, 0x010D27],
  163. [0x010F46, 0x010F50],
  164. [0x0110B9, 0x0110BA],
  165. [0x011133, 0x011134],
  166. [0x0111CA, 0x0111CC],
  167. [0x011235, 0x011236],
  168. [0x0112E9, 0x0112EA],
  169. [0x011366, 0x01136C],
  170. [0x011370, 0x011374],
  171. [0x0114C2, 0x0114C3],
  172. [0x0115BF, 0x0115C0],
  173. [0x0116B6, 0x0116B7],
  174. [0x011839, 0x01183A],
  175. [0x011D44, 0x011D45],
  176. [0x016AF0, 0x016AF4],
  177. [0x016B30, 0x016B36],
  178. [0x016F8F, 0x016F9F],
  179. [0x01D167, 0x01D169],
  180. [0x01D16D, 0x01D172],
  181. [0x01D17B, 0x01D182],
  182. [0x01D185, 0x01D18B],
  183. [0x01D1AA, 0x01D1AD],
  184. [0x01E130, 0x01E136],
  185. [0x01E2EC, 0x01E2EF],
  186. [0x01E8D0, 0x01E8D6],
  187. [0x01E944, 0x01E946],
  188. [0x01E948, 0x01E94A]
  189. ]
  190. });
  191. testPropertyEscapes(
  192. /^\p{Diacritic}+$/u,
  193. matchSymbols,
  194. "\\p{Diacritic}"
  195. );
  196. testPropertyEscapes(
  197. /^\p{Dia}+$/u,
  198. matchSymbols,
  199. "\\p{Dia}"
  200. );
  201. const nonMatchSymbols = buildString({
  202. loneCodePoints: [
  203. 0x00005F,
  204. 0x00034F,
  205. 0x0005A2,
  206. 0x0005BE,
  207. 0x0005C0,
  208. 0x0005C3,
  209. 0x000E4D,
  210. 0x000F36,
  211. 0x000F38,
  212. 0x000F85,
  213. 0x001038,
  214. 0x00108E,
  215. 0x001FBE,
  216. 0x00A67E,
  217. 0x00FF3F,
  218. 0x011D43,
  219. 0x01E947
  220. ],
  221. ranges: [
  222. [0x00DC00, 0x00DFFF],
  223. [0x000000, 0x00005D],
  224. [0x000061, 0x0000A7],
  225. [0x0000A9, 0x0000AE],
  226. [0x0000B0, 0x0000B3],
  227. [0x0000B5, 0x0000B6],
  228. [0x0000B9, 0x0002AF],
  229. [0x000358, 0x00035C],
  230. [0x000363, 0x000373],
  231. [0x000376, 0x000379],
  232. [0x00037B, 0x000383],
  233. [0x000386, 0x000482],
  234. [0x000488, 0x000558],
  235. [0x00055A, 0x000590],
  236. [0x0005C5, 0x00064A],
  237. [0x000653, 0x000656],
  238. [0x000659, 0x0006DE],
  239. [0x0006E1, 0x0006E4],
  240. [0x0006E7, 0x0006E9],
  241. [0x0006ED, 0x00072F],
  242. [0x00074B, 0x0007A5],
  243. [0x0007B1, 0x0007EA],
  244. [0x0007F6, 0x000817],
  245. [0x00081A, 0x0008E2],
  246. [0x0008FF, 0x00093B],
  247. [0x00093D, 0x00094C],
  248. [0x00094E, 0x000950],
  249. [0x000955, 0x000970],
  250. [0x000972, 0x0009BB],
  251. [0x0009BD, 0x0009CC],
  252. [0x0009CE, 0x000A3B],
  253. [0x000A3D, 0x000A4C],
  254. [0x000A4E, 0x000ABB],
  255. [0x000ABD, 0x000ACC],
  256. [0x000ACE, 0x000AFC],
  257. [0x000B00, 0x000B3B],
  258. [0x000B3D, 0x000B4C],
  259. [0x000B4E, 0x000BCC],
  260. [0x000BCE, 0x000C4C],
  261. [0x000C4E, 0x000CBB],
  262. [0x000CBD, 0x000CCC],
  263. [0x000CCE, 0x000D3A],
  264. [0x000D3D, 0x000D4C],
  265. [0x000D4E, 0x000DC9],
  266. [0x000DCB, 0x000E46],
  267. [0x000E4F, 0x000EB9],
  268. [0x000EBB, 0x000EC7],
  269. [0x000ECD, 0x000F17],
  270. [0x000F1A, 0x000F34],
  271. [0x000F3A, 0x000F3D],
  272. [0x000F40, 0x000F81],
  273. [0x000F88, 0x000FC5],
  274. [0x000FC7, 0x001036],
  275. [0x00103B, 0x001062],
  276. [0x001065, 0x001068],
  277. [0x00106E, 0x001086],
  278. [0x001090, 0x001099],
  279. [0x00109C, 0x00135C],
  280. [0x001360, 0x0017C8],
  281. [0x0017D4, 0x0017DC],
  282. [0x0017DE, 0x001938],
  283. [0x00193C, 0x001A74],
  284. [0x001A7D, 0x001A7E],
  285. [0x001A80, 0x001AAF],
  286. [0x001ABE, 0x001B33],
  287. [0x001B35, 0x001B43],
  288. [0x001B45, 0x001B6A],
  289. [0x001B74, 0x001BA9],
  290. [0x001BAC, 0x001C35],
  291. [0x001C38, 0x001C77],
  292. [0x001C7E, 0x001CCF],
  293. [0x001CE9, 0x001CEC],
  294. [0x001CEE, 0x001CF3],
  295. [0x001CF5, 0x001CF6],
  296. [0x001CFA, 0x001D2B],
  297. [0x001D6B, 0x001DC3],
  298. [0x001DD0, 0x001DF4],
  299. [0x001DFA, 0x001DFC],
  300. [0x001E00, 0x001FBC],
  301. [0x001FC2, 0x001FCC],
  302. [0x001FD0, 0x001FDC],
  303. [0x001FE0, 0x001FEC],
  304. [0x001FF0, 0x001FFC],
  305. [0x001FFF, 0x002CEE],
  306. [0x002CF2, 0x002E2E],
  307. [0x002E30, 0x003029],
  308. [0x003030, 0x003098],
  309. [0x00309D, 0x0030FB],
  310. [0x0030FD, 0x00A66E],
  311. [0x00A670, 0x00A67B],
  312. [0x00A680, 0x00A69B],
  313. [0x00A69E, 0x00A6EF],
  314. [0x00A6F2, 0x00A6FF],
  315. [0x00A722, 0x00A787],
  316. [0x00A78B, 0x00A7F7],
  317. [0x00A7FA, 0x00A8C3],
  318. [0x00A8C5, 0x00A8DF],
  319. [0x00A8F2, 0x00A92A],
  320. [0x00A92F, 0x00A952],
  321. [0x00A954, 0x00A9B2],
  322. [0x00A9B4, 0x00A9BF],
  323. [0x00A9C1, 0x00A9E4],
  324. [0x00A9E6, 0x00AA7A],
  325. [0x00AA7E, 0x00AABE],
  326. [0x00AAC3, 0x00AAF5],
  327. [0x00AAF7, 0x00AB5A],
  328. [0x00AB60, 0x00ABEB],
  329. [0x00ABEE, 0x00DBFF],
  330. [0x00E000, 0x00FB1D],
  331. [0x00FB1F, 0x00FE1F],
  332. [0x00FE30, 0x00FF3D],
  333. [0x00FF41, 0x00FF6F],
  334. [0x00FF71, 0x00FF9D],
  335. [0x00FFA0, 0x00FFE2],
  336. [0x00FFE4, 0x0102DF],
  337. [0x0102E1, 0x010AE4],
  338. [0x010AE7, 0x010D21],
  339. [0x010D28, 0x010F45],
  340. [0x010F51, 0x0110B8],
  341. [0x0110BB, 0x011132],
  342. [0x011135, 0x011172],
  343. [0x011174, 0x0111BF],
  344. [0x0111C1, 0x0111C9],
  345. [0x0111CD, 0x011234],
  346. [0x011237, 0x0112E8],
  347. [0x0112EB, 0x01133B],
  348. [0x01133D, 0x01134C],
  349. [0x01134E, 0x011365],
  350. [0x01136D, 0x01136F],
  351. [0x011375, 0x011441],
  352. [0x011443, 0x011445],
  353. [0x011447, 0x0114C1],
  354. [0x0114C4, 0x0115BE],
  355. [0x0115C1, 0x01163E],
  356. [0x011640, 0x0116B5],
  357. [0x0116B8, 0x01172A],
  358. [0x01172C, 0x011838],
  359. [0x01183B, 0x0119DF],
  360. [0x0119E1, 0x011A33],
  361. [0x011A35, 0x011A46],
  362. [0x011A48, 0x011A98],
  363. [0x011A9A, 0x011C3E],
  364. [0x011C40, 0x011D41],
  365. [0x011D46, 0x011D96],
  366. [0x011D98, 0x016AEF],
  367. [0x016AF5, 0x016B2F],
  368. [0x016B37, 0x016F8E],
  369. [0x016FA0, 0x01D166],
  370. [0x01D16A, 0x01D16C],
  371. [0x01D173, 0x01D17A],
  372. [0x01D183, 0x01D184],
  373. [0x01D18C, 0x01D1A9],
  374. [0x01D1AE, 0x01E12F],
  375. [0x01E137, 0x01E2EB],
  376. [0x01E2F0, 0x01E8CF],
  377. [0x01E8D7, 0x01E943],
  378. [0x01E94B, 0x10FFFF]
  379. ]
  380. });
  381. testPropertyEscapes(
  382. /^\P{Diacritic}+$/u,
  383. nonMatchSymbols,
  384. "\\P{Diacritic}"
  385. );
  386. testPropertyEscapes(
  387. /^\P{Dia}+$/u,
  388. nonMatchSymbols,
  389. "\\P{Dia}"
  390. );