PageRenderTime 26ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/files/jquery.stringtoslug/1.2.1/jquery.stringToSlug.js

https://gitlab.com/Mirros/jsdelivr
JavaScript | 415 lines | 386 code | 14 blank | 15 comment | 3 complexity | 25ad70dd9253421405bbd79fc3b7e555 MD5 | raw file
  1. /*
  2. * jQuery stringToSlug plug-in 1.2.1
  3. *
  4. * Plugin HomePage http://leocaseiro.com.br/jquery-plugin-string-to-slug/
  5. *
  6. * Copyright (c) 2009 Leo Caseiro
  7. *
  8. * Based on Edson Hilios (http://www.edsonhilios.com.br/ Algoritm
  9. *
  10. *
  11. * Dual licensed under the MIT and GPL licenses:
  12. * http://www.opensource.org/licenses/mit-license.php
  13. * http://www.gnu.org/licenses/gpl.html
  14. */
  15. jQuery.fn.stringToSlug = function(options) {
  16. var defaults = {
  17. setEvents: 'keyup keydown blur', //set Events that your script will work
  18. getPut: '#permalink', //set output field
  19. space: '-', //Sets the space character. If the hyphen,
  20. prefix: '',
  21. suffix: '',
  22. replace: '' //Sample: /\s?\([^\)]*\)/gi
  23. };
  24. var opts = jQuery.extend(defaults, options);
  25. jQuery(this).bind(defaults.setEvents, function () {
  26. var text = jQuery(this).val();
  27. text = defaults.prefix + text + defaults.suffix; //Concatenate with prefix and suffix
  28. text = text.replace(defaults.replace, ""); //replace
  29. text = jQuery.trim(text.toString()); //Remove side spaces and convert to String Object
  30. var chars = []; //Cria vetor de caracteres
  31. for (var i = 0; i < 32; i++) {
  32. chars.push ('');
  33. }
  34. /*** Abaixo a lista de caracteres ***/
  35. chars.push (defaults.space); // Unicode 32
  36. chars.push (''); // !
  37. chars.push (''); // "
  38. chars.push (''); // #
  39. chars.push (''); // $
  40. chars.push (''); // %
  41. chars.push (''); // &
  42. chars.push (""); // '
  43. chars.push (defaults.space); // (
  44. chars.push (defaults.space); // );
  45. chars.push (''); // *
  46. chars.push (''); // +
  47. chars.push (defaults.space); // );
  48. chars.push (defaults.space); // -
  49. chars.push (defaults.space); // .
  50. chars.push (defaults.space); // /
  51. chars.push ('0'); // 0
  52. chars.push ('1'); // 1
  53. chars.push ('2'); // 2
  54. chars.push ('3'); // 3
  55. chars.push ('4'); // 4
  56. chars.push ('5'); // 5
  57. chars.push ('6'); // 6
  58. chars.push ('7'); // 7
  59. chars.push ('8'); // 8
  60. chars.push ('9'); // 9
  61. chars.push (''); // :
  62. chars.push (''); // ;
  63. chars.push (''); // <
  64. chars.push (''); // =
  65. chars.push (''); // >
  66. chars.push (''); // ?
  67. chars.push (''); // @
  68. chars.push ('A'); // A
  69. chars.push ('B'); // B
  70. chars.push ('C'); // C
  71. chars.push ('D'); // D
  72. chars.push ('E'); // E
  73. chars.push ('F'); // F
  74. chars.push ('G'); // G
  75. chars.push ('H'); // H
  76. chars.push ('I'); // I
  77. chars.push ('J'); // J
  78. chars.push ('K'); // K
  79. chars.push ('L'); // L
  80. chars.push ('M'); // M
  81. chars.push ('N'); // N
  82. chars.push ('O'); // O
  83. chars.push ('P'); // P
  84. chars.push ('Q'); // Q
  85. chars.push ('R'); // R
  86. chars.push ('S'); // S
  87. chars.push ('T'); // T
  88. chars.push ('U'); // U
  89. chars.push ('V'); // V
  90. chars.push ('W'); // W
  91. chars.push ('X'); // X
  92. chars.push ('Y'); // Y
  93. chars.push ('Z'); // Z
  94. chars.push (defaults.space); // [
  95. chars.push (defaults.space); // /
  96. chars.push (defaults.space); // ]
  97. chars.push (''); // ^
  98. chars.push (defaults.space); // _
  99. chars.push (''); // `
  100. chars.push ('a'); // a
  101. chars.push ('b'); // b
  102. chars.push ('c'); // c
  103. chars.push ('d'); // d
  104. chars.push ('e'); // e
  105. chars.push ('f'); // f
  106. chars.push ('g'); // g
  107. chars.push ('h'); // h
  108. chars.push ('i'); // i
  109. chars.push ('j'); // j
  110. chars.push ('k'); // k
  111. chars.push ('l'); // l
  112. chars.push ('m'); // m
  113. chars.push ('n'); // n
  114. chars.push ('o'); // o
  115. chars.push ('p'); // p
  116. chars.push ('q'); // q
  117. chars.push ('r'); // r
  118. chars.push ('s'); // s
  119. chars.push ('t'); // t
  120. chars.push ('u'); // u
  121. chars.push ('v'); // v
  122. chars.push ('w'); // w
  123. chars.push ('x'); // x
  124. chars.push ('y'); // y
  125. chars.push ('z'); // z
  126. chars.push (defaults.space); // {
  127. chars.push (''); // |
  128. chars.push (defaults.space); // }
  129. chars.push (''); // ~
  130. chars.push (''); // ?
  131. chars.push ('C');
  132. chars.push ('A');
  133. chars.push ('');
  134. chars.push ('f');
  135. chars.push ('');
  136. chars.push ('');
  137. chars.push ('T');
  138. chars.push ('t');
  139. chars.push ('');
  140. chars.push ('');
  141. chars.push ('S');
  142. chars.push ('');
  143. chars.push ('CE');
  144. chars.push ('A');
  145. chars.push ('Z');
  146. chars.push ('A');
  147. chars.push ('A');
  148. chars.push ('');
  149. chars.push ('');
  150. chars.push ('');
  151. chars.push ('');
  152. chars.push ('');
  153. chars.push (defaults.space);
  154. chars.push (defaults.space);
  155. chars.push ('');
  156. chars.push ('TM');
  157. chars.push ('s');
  158. chars.push ('');
  159. chars.push ('ae');
  160. chars.push ('A');
  161. chars.push ('z');
  162. chars.push ('Y');
  163. chars.push ('');
  164. chars.push ('');
  165. chars.push ('c');
  166. chars.push ('L');
  167. chars.push ('o');
  168. chars.push ('Y');
  169. chars.push ('');
  170. chars.push ('S');
  171. chars.push ('');
  172. chars.push ('c');
  173. chars.push ('a');
  174. chars.push ('');
  175. chars.push ('');
  176. chars.push ('');
  177. chars.push ('r');
  178. chars.push (defaults.space);
  179. chars.push ('o');
  180. chars.push ('');
  181. chars.push ('2');
  182. chars.push ('3');
  183. chars.push ('');
  184. chars.push ('u');
  185. chars.push ('p');
  186. chars.push ('');
  187. chars.push ('');
  188. chars.push ('1');
  189. chars.push ('o');
  190. chars.push ('');
  191. chars.push ('');
  192. chars.push ('');
  193. chars.push ('');
  194. chars.push ('');
  195. chars.push ('A');
  196. chars.push ('A');
  197. chars.push ('A');
  198. chars.push ('A');
  199. chars.push ('A');
  200. chars.push ('A');
  201. chars.push ('AE');
  202. chars.push ('C');
  203. chars.push ('E');
  204. chars.push ('E');
  205. chars.push ('E');
  206. chars.push ('E');
  207. chars.push ('I');
  208. chars.push ('I');
  209. chars.push ('I');
  210. chars.push ('I');
  211. chars.push ('D');
  212. chars.push ('N');
  213. chars.push ('O');
  214. chars.push ('O');
  215. chars.push ('O');
  216. chars.push ('O');
  217. chars.push ('O');
  218. chars.push ('x');
  219. chars.push ('O');
  220. chars.push ('U');
  221. chars.push ('U');
  222. chars.push ('U');
  223. chars.push ('U');
  224. chars.push ('Y');
  225. chars.push ('D');
  226. chars.push ('B');
  227. chars.push ('a');
  228. chars.push ('a');
  229. chars.push ('a');
  230. chars.push ('a');
  231. chars.push ('a');
  232. chars.push ('a');
  233. chars.push ('ae');
  234. chars.push ('c');
  235. chars.push ('e');
  236. chars.push ('e');
  237. chars.push ('e');
  238. chars.push ('e');
  239. chars.push ('i');
  240. chars.push ('i');
  241. chars.push ('i');
  242. chars.push ('i');
  243. chars.push ('o');
  244. chars.push ('n');
  245. chars.push ('o');
  246. chars.push ('o');
  247. chars.push ('o');
  248. chars.push ('o');
  249. chars.push ('o');
  250. chars.push ('');
  251. chars.push ('o');
  252. chars.push ('u');
  253. chars.push ('u');
  254. chars.push ('u');
  255. chars.push ('u');
  256. chars.push ('y');
  257. chars.push ('');
  258. chars.push ('y');
  259. chars.push ('z');
  260. chars.push ('');
  261. chars.push ('');
  262. chars.push ('');
  263. chars.push ('');
  264. chars.push ('');
  265. chars.push ('');
  266. chars.push ('');
  267. chars.push ('');
  268. chars.push ('');
  269. chars.push ('');
  270. chars.push ('');
  271. chars.push ('C');
  272. chars.push ('c');
  273. chars.push ('D');
  274. chars.push ('d');
  275. chars.push ('');
  276. chars.push ('');
  277. chars.push ('');
  278. chars.push ('');
  279. chars.push ('');
  280. chars.push ('');
  281. chars.push ('');
  282. chars.push ('');
  283. chars.push ('');
  284. chars.push ('');
  285. chars.push ('E');
  286. chars.push ('e');
  287. chars.push ('');
  288. chars.push ('');
  289. chars.push ('');
  290. chars.push ('');
  291. chars.push ('');
  292. chars.push ('');
  293. chars.push ('');
  294. chars.push ('');
  295. chars.push ('');
  296. chars.push ('');
  297. chars.push ('');
  298. chars.push ('');
  299. chars.push ('');
  300. chars.push ('');
  301. chars.push ('');
  302. chars.push ('');
  303. chars.push ('');
  304. chars.push ('');
  305. chars.push ('');
  306. chars.push ('');
  307. chars.push ('');
  308. chars.push ('');
  309. chars.push ('');
  310. chars.push ('');
  311. chars.push ('');
  312. chars.push ('');
  313. chars.push ('');
  314. chars.push ('');
  315. chars.push ('');
  316. chars.push ('');
  317. chars.push ('');
  318. chars.push ('');
  319. chars.push ('');
  320. chars.push ('');
  321. chars.push ('');
  322. chars.push ('');
  323. chars.push ('');
  324. chars.push ('');
  325. chars.push ('');
  326. chars.push ('');
  327. chars.push ('');
  328. chars.push ('');
  329. chars.push ('');
  330. chars.push ('N');
  331. chars.push ('n');
  332. chars.push ('');
  333. chars.push ('');
  334. chars.push ('');
  335. chars.push ('');
  336. chars.push ('');
  337. chars.push ('');
  338. chars.push ('');
  339. chars.push ('');
  340. chars.push ('');
  341. chars.push ('');
  342. chars.push ('');
  343. chars.push ('');
  344. chars.push ('');
  345. chars.push ('');
  346. chars.push ('');
  347. chars.push ('R');
  348. chars.push ('r');
  349. chars.push ('');
  350. chars.push ('');
  351. chars.push ('');
  352. chars.push ('');
  353. chars.push ('');
  354. chars.push ('');
  355. chars.push ('S');
  356. chars.push ('s');
  357. chars.push ('');
  358. chars.push ('');
  359. chars.push ('T');
  360. chars.push ('t');
  361. chars.push ('');
  362. chars.push ('');
  363. chars.push ('');
  364. chars.push ('');
  365. chars.push ('');
  366. chars.push ('');
  367. chars.push ('');
  368. chars.push ('');
  369. chars.push ('U');
  370. chars.push ('u');
  371. chars.push ('');
  372. chars.push ('');
  373. chars.push ('');
  374. chars.push ('');
  375. chars.push ('');
  376. chars.push ('');
  377. chars.push ('');
  378. chars.push ('');
  379. chars.push ('');
  380. chars.push ('');
  381. chars.push ('');
  382. chars.push ('');
  383. chars.push ('');
  384. chars.push ('Z');
  385. chars.push ('z');
  386. for (var i = 256; i < 100; i++) {
  387. chars.push ('');
  388. }
  389. var stringToSlug = new String (); //Create a stringToSlug String Object
  390. for (var i = 0; i < text.length; i ++) {
  391. stringToSlug += chars[text.charCodeAt (i)]; //Insert values converts at slugs
  392. }
  393. stringToSlug = stringToSlug.replace (new RegExp ('\\'+defaults.space+'{2,}', 'gmi'), defaults.space); // Remove any space character followed by Breakfast
  394. stringToSlug = stringToSlug.replace (new RegExp ('(^'+defaults.space+')|('+defaults.space+'$)', 'gmi'), ''); // Remove the space at the beginning or end of string
  395. stringToSlug = stringToSlug.toLowerCase(); //Convert your slug in lowercase
  396. jQuery(defaults.getPut).val(stringToSlug); //Write in value to input fields (input text, textarea, input hidden, ...)
  397. jQuery(defaults.getPut).html(stringToSlug); //Write in HTML tags (span, p, strong, h1, ...)
  398. return this;
  399. });
  400. return this;
  401. }