tests_regex.js 12 KB

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