tests_regex.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  1. define([
  2. "qunit",
  3. "inputmask.dependencyLib",
  4. "inputmask"
  5. ], function(qunit, $, Inputmask) {
  6. module("Regex masks");
  7. test("inputmask(\"Regex\", { regex: \"[0-9]*\"});", function() {
  8. var $fixture = $("#qunit-fixture");
  9. $fixture.append('<input type="text" id="testmask" />');
  10. var testmask = document.getElementById("testmask");
  11. Inputmask("Regex", {
  12. regex: "[0-9]*"
  13. }).mask(testmask);
  14. testmask.focus();
  15. $("#testmask").Type("123abc45");
  16. equal(testmask.value, "12345", "Result " + testmask.value);
  17. $("#testmask").remove();
  18. });
  19. asyncTest("inputmask(\"Regex\", { regex: \"[0-9]*\"}); ~ isComplete", function() {
  20. var $fixture = $("#qunit-fixture");
  21. $fixture.append('<input type="text" id="testmask" />');
  22. var testmask = document.getElementById("testmask");
  23. Inputmask("Regex", {
  24. regex: "[0-9]*",
  25. oncomplete: function() {
  26. equal(testmask.value, "1", "Result " + testmask.value);
  27. start();
  28. $("#testmask").remove();
  29. }
  30. }).mask(testmask);
  31. testmask.focus();
  32. $("#testmask").SendKey("1");
  33. });
  34. test("inputmask(\"Regex\", { regex: \"[A-Za-z\u0410-\u044F\u0401\u04510-9]*\"});", function() {
  35. var $fixture = $("#qunit-fixture");
  36. $fixture.append('<input type="text" id="testmask" />');
  37. var testmask = document.getElementById("testmask");
  38. Inputmask("Regex", {
  39. regex: "[A-Za-z\u0410-\u044F\u0401\u04510-9]*"
  40. }).mask(testmask);
  41. testmask.focus();
  42. $("#testmask").Type("123abc45");
  43. equal(testmask.value, "123abc45", "Result " + testmask.value);
  44. $("#testmask").remove();
  45. });
  46. test("inputmask(\"Regex\", { regex: \"[A-Za-z\u0410-\u044F\u0401\u0451]+[A-Za-z\u0410-\u044F\u0401\u04510-9]*\"});", function() {
  47. var $fixture = $("#qunit-fixture");
  48. $fixture.append('<input type="text" id="testmask" />');
  49. var testmask = document.getElementById("testmask");
  50. Inputmask("Regex", {
  51. regex: "[A-Za-z\u0410-\u044F\u0401\u0451]+[A-Za-z\u0410-\u044F\u0401\u04510-9]*"
  52. }).mask(testmask);
  53. testmask.focus();
  54. $("#testmask").Type("123abc45");
  55. equal(testmask.value, "abc45", "Result " + testmask.value);
  56. $("#testmask").remove();
  57. });
  58. test("inputmask(\"Regex\", { regex: \"[A-Za-z\u0410-\u044F\u0401\u0451]{1}[A-Za-z\u0410-\u044F\u0401\u04510-9]*\"});", function() {
  59. var $fixture = $("#qunit-fixture");
  60. $fixture.append('<input type="text" id="testmask" />');
  61. var testmask = document.getElementById("testmask");
  62. Inputmask("Regex", {
  63. regex: "[A-Za-z\u0410-\u044F\u0401\u0451]{1}[A-Za-z\u0410-\u044F\u0401\u04510-9]*"
  64. }).mask(testmask);
  65. testmask.focus();
  66. $("#testmask").Type("123abc45");
  67. equal(testmask.value, "abc45", "Result " + testmask.value);
  68. $("#testmask").remove();
  69. });
  70. test("inputmask(\"Regex\", { regex: \"[-]?(([1-8][0-9])|[1-9]0?)\"});", function() {
  71. var $fixture = $("#qunit-fixture");
  72. $fixture.append('<input type="text" id="testmask" />');
  73. var testmask = document.getElementById("testmask");
  74. Inputmask("Regex", {
  75. regex: "[-]?(([1-8][0-9])|[1-9]0?)"
  76. }).mask(testmask);
  77. testmask.focus();
  78. $("#testmask").Type("90");
  79. equal(testmask.value, "90", "Result " + testmask.value);
  80. $("#testmask").remove();
  81. });
  82. test("inputmask(\"Regex\", { regex: \"[-]?(([1-8][0-9])|[1-9]0?)\"});", function() {
  83. var $fixture = $("#qunit-fixture");
  84. $fixture.append('<input type="text" id="testmask" />');
  85. var testmask = document.getElementById("testmask");
  86. Inputmask("Regex", {
  87. regex: "[-]?(([1-8][0-9])|[1-9]0?)"
  88. }).mask(testmask);
  89. testmask.focus();
  90. $("#testmask").Type("0");
  91. equal(testmask.value, "", "Result " + testmask.value);
  92. $("#testmask").remove();
  93. });
  94. test("inputmask(\"Regex\", { regex: \"[-]?(([1-8][0-9])|[1-9]0?)\"});", function() {
  95. var $fixture = $("#qunit-fixture");
  96. $fixture.append('<input type="text" id="testmask" />');
  97. var testmask = document.getElementById("testmask");
  98. Inputmask("Regex", {
  99. regex: "[-]?(([1-8][0-9])|[1-9]0?)"
  100. }).mask(testmask);
  101. testmask.focus();
  102. $("#testmask").Type("-78");
  103. equal(testmask.value, "-78", "Result " + testmask.value);
  104. $("#testmask").remove();
  105. });
  106. test("inputmask(\"Regex\", { regex: \"[a-za-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\" - simple regex email", function() {
  107. var $fixture = $("#qunit-fixture");
  108. $fixture.append('<input type="text" id="testmask" />');
  109. var testmask = document.getElementById("testmask");
  110. Inputmask("Regex", {
  111. regex: "[a-za-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?"
  112. }).mask(testmask);
  113. testmask.focus();
  114. $("#testmask").Type("some.body@mail.com");
  115. equal(testmask.value, "some.body@mail.com", "Result " + testmask.value);
  116. $("#testmask").remove();
  117. });
  118. test("inputmask(\"Regex\", { regex: \"[a-za-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\" - complexer regex email", function() {
  119. var $fixture = $("#qunit-fixture");
  120. $fixture.append('<input type="text" id="testmask" />');
  121. var testmask = document.getElementById("testmask");
  122. Inputmask("Regex", {
  123. regex: "[a-za-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?"
  124. }).mask(testmask);
  125. testmask.focus();
  126. $("#testmask").Type("denise.van.de.cruys@mail.com");
  127. equal(testmask.value, "denise.van.de.cruys@mail.com", "Result " + testmask.value);
  128. $("#testmask").remove();
  129. });
  130. test("inputmask(\"Regex\", { regex: \"(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))\" - mrpanacs regex 1-123-4562", function() {
  131. var $fixture = $("#qunit-fixture");
  132. $fixture.append('<input type="text" id="testmask" />');
  133. var testmask = document.getElementById("testmask");
  134. Inputmask("Regex", {
  135. regex: "(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))"
  136. }).mask(testmask);
  137. testmask.focus();
  138. $("#testmask").Type("1-123-4562");
  139. equal(testmask.value, "1-123-4562", "Result " + testmask.value);
  140. $("#testmask").remove();
  141. });
  142. test("inputmask(\"Regex\", { regex: \"(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))\" - mrpanacs regex 20-222-2222", function() {
  143. var $fixture = $("#qunit-fixture");
  144. $fixture.append('<input type="text" id="testmask" />');
  145. var testmask = document.getElementById("testmask");
  146. Inputmask("Regex", {
  147. regex: "(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))"
  148. }).mask(testmask);
  149. testmask.focus();
  150. $("#testmask").Type("20-222-2222");
  151. equal(testmask.value, "20-222-2222", "Result " + testmask.value);
  152. $("#testmask").remove();
  153. });
  154. test("inputmask(\"Regex\", { regex: \"(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))\" - mrpanacs regex 22-222-234", function() {
  155. var $fixture = $("#qunit-fixture");
  156. $fixture.append('<input type="text" id="testmask" />');
  157. var testmask = document.getElementById("testmask");
  158. Inputmask("Regex", {
  159. regex: "(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))"
  160. }).mask(testmask);
  161. testmask.focus();
  162. $("#testmask").Type("22-222-234");
  163. equal(testmask.value, "22-222-234", "Result " + testmask.value);
  164. $("#testmask").remove();
  165. });
  166. test("inputmask(\"Regex\", { regex: \"(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))\" - mrpanacs regex 70-12-34", function() {
  167. var $fixture = $("#qunit-fixture");
  168. $fixture.append('<input type="text" id="testmask" />');
  169. var testmask = document.getElementById("testmask");
  170. Inputmask("Regex", {
  171. regex: "(([2-9][0-9])-([0-9]{3}-[0-9]{3}))|((1|30|20|70)-([0-9]{3}-[0-9]{4}))"
  172. }).mask(testmask);
  173. testmask.focus();
  174. $("#testmask").Type("70-12-34");
  175. equal(testmask.value, "70-123", "Result " + testmask.value);
  176. $("#testmask").remove();
  177. });
  178. test("inputmask(\"Regex\", { regex: \"([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|75))?\" - arame regex 12", function() {
  179. var $fixture = $("#qunit-fixture");
  180. $fixture.append('<input type="text" id="testmask" />');
  181. var testmask = document.getElementById("testmask");
  182. Inputmask("Regex", {
  183. regex: "([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|75))?"
  184. }).mask(testmask);
  185. testmask.focus();
  186. $("#testmask").Type("12");
  187. equal(testmask.value, "12", "Result " + testmask.value);
  188. $("#testmask").remove();
  189. });
  190. test("inputmask(\"Regex\", { regex: \"([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|75))?\" } - arame regex 12.5", function() {
  191. var $fixture = $("#qunit-fixture");
  192. $fixture.append('<input type="text" id="testmask" />');
  193. var testmask = document.getElementById("testmask");
  194. Inputmask("Regex", {
  195. regex: "([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|75))?"
  196. }).mask(testmask);
  197. testmask.focus();
  198. $("#testmask").Type("12.5");
  199. equal(testmask.value, "12.5", "Result " + testmask.value);
  200. $("#testmask").remove();
  201. });
  202. test("inputmask(\"Regex\", { regex: \"([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|75))?\" } - arame regex 12.75", function() {
  203. var $fixture = $("#qunit-fixture");
  204. $fixture.append('<input type="text" id="testmask" />');
  205. var testmask = document.getElementById("testmask");
  206. Inputmask("Regex", {
  207. regex: "([0-9]|[1][0-9]|[2][0-3]?)(\\.(5|25|75))?"
  208. }).mask(testmask);
  209. testmask.focus();
  210. $("#testmask").Type("12.75");
  211. equal(testmask.value, "12.75", "Result " + testmask.value);
  212. $("#testmask").remove();
  213. });
  214. test("inputmask('Regex', { regex: \"(abc)+(def)\" }); - Flyarbonkers regex abcdef", function() {
  215. var $fixture = $("#qunit-fixture");
  216. $fixture.append('<input type="text" id="testmask" />');
  217. var testmask = document.getElementById("testmask");
  218. Inputmask('Regex', {
  219. regex: "(abc)+(def)"
  220. }).mask(testmask);
  221. testmask.focus();
  222. $("#testmask").Type("abcdef");
  223. equal(testmask.value, "abcdef", "Result " + testmask.value);
  224. $("#testmask").remove();
  225. });
  226. test("inputmask('Regex', { regex: \"(abc)+(def)\" }); - Flyarbonkers regex 123a4b5c6d7e8f", function() {
  227. var $fixture = $("#qunit-fixture");
  228. $fixture.append('<input type="text" id="testmask" />');
  229. var testmask = document.getElementById("testmask");
  230. Inputmask('Regex', {
  231. regex: "(abc)+(def)"
  232. }).mask(testmask);
  233. testmask.focus();
  234. $("#testmask").Type("123a4b5c6d7e8f");
  235. equal(testmask.value, "abcdef", "Result " + testmask.value);
  236. $("#testmask").remove();
  237. });
  238. test("inputmask('Regex', { regex: \"(abc)+(def)\" }); - Flyarbonkers regex abcabcdef", function() {
  239. var $fixture = $("#qunit-fixture");
  240. $fixture.append('<input type="text" id="testmask" />');
  241. var testmask = document.getElementById("testmask");
  242. Inputmask('Regex', {
  243. regex: "(abc)+(def)"
  244. }).mask(testmask);
  245. testmask.focus();
  246. $("#testmask").Type("abcabcdef");
  247. equal(testmask.value, "abcabcdef", "Result " + testmask.value);
  248. $("#testmask").remove();
  249. });
  250. test("inputmask('Regex', { regex: \"(abc){2,4}(def)\" }); - Flyarbonkers regex abdefcafebcaefbfcabcdef", function() {
  251. var $fixture = $("#qunit-fixture");
  252. $fixture.append('<input type="text" id="testmask" />');
  253. var testmask = document.getElementById("testmask");
  254. Inputmask('Regex', {
  255. regex: "(abc){2,4}(def)"
  256. }).mask(testmask);
  257. testmask.focus();
  258. $("#testmask").Type("abdefcafebcaefbfcabcdef");
  259. equal(testmask.value, "abcabcabcabcdef", "Result " + testmask.value);
  260. $("#testmask").remove();
  261. });
  262. test("inputmask(\"Regex\", {regex: \"[а-яА-Я\\s]*\"}) - type space - SilentImp", function() {
  263. var $fixture = $("#qunit-fixture");
  264. $fixture.append('<input type="text" id="testmask" />');
  265. var testmask = document.getElementById("testmask");
  266. Inputmask("Regex", {
  267. regex: "[а-яА-Я\\s]*"
  268. }).mask(testmask);
  269. testmask.focus();
  270. $("#testmask").SendKey(Inputmask.keyCode.SPACE);
  271. equal(testmask.value, " ", "Result " + testmask.value);
  272. $("#testmask").remove();
  273. });
  274. });