tests_regex.js 14 KB

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