PageSourceSearch

https://azoriceramica.ru/local/templates/azori/js/form/mask.js?16825963612861

js azoriceramica.ru collected 2026-10-06 17:15:51 UTC 2,861 bytes, 77 lines download raw bytes

1
2document.addEventListener("DOMContentLoaded", function () {
3  var phoneInputs = document.querySelectorAll('input[type="tel"]');
4
5  var getInputNumbersValue = function (input) {
6      // Return stripped input value — just numbers
7      return input.value.replace(/\D/g, '');
8  }
9
10  var onPhonePaste = function (e) {
11      var input = e.target,
12          inputNumbersValue = getInputNumbersValue(input);
13      var pasted = e.clipboardData || window.clipboardData;
14      if (pasted) {
15          var pastedText = pasted.getData('Text');
16          if (/\D/g.test(pastedText)) {
17              // Attempt to paste non-numeric symbol — remove all non-numeric symbols,
18              // formatting will be in onPhoneInput handler
19              input.value = inputNumbersValue;
20              return;
21          }
22      }
23  }
24
25  var onPhoneInput = function (e) {
26      var input = e.target,
27          inputNumbersValue = getInputNumbersValue(input),
28          selectionStart = input.selectionStart,
29          formattedInputValue = "";
30
31      if (!inputNumbersValue) {
32          return input.value = "";
33      }
34
35      if (input.value.length != selectionStart) {
36          // Editing in the middle of input, not last symbol
37          if (e.data && /\D/g.test(e.data)) {
38              // Attempt to input non-numeric symbol
39              input.value = inputNumbersValue;
40          }
41          return;
42      }
43
44      if (["7", "8", "9"].indexOf(inputNumbersValue[0]) > -1) {
45          if (inputNumbersValue[0] == "9") inputNumbersValue = "7" + inputNumbersValue;
46          var firstSymbols = (inputNumbersValue[0] == "8") ? "8" : "+7";
47          formattedInputValue = input.value = firstSymbols + " ";
48          if (inputNumbersValue.length > 1) {
49              formattedInputValue += '(' + inputNumbersValue.substring(1, 4);
50          }
51          if (inputNumbersValue.length >= 5) {
52              formattedInputValue += ') ' + inputNumbersValue.substring(4, 7);
53          }
54          if (inputNumbersValue.length >= 8) {
55              formattedInputValue += '-' + inputNumbersValue.substring(7, 9);
56          }
57          if (inputNumbersValue.length >= 10) {
58              formattedInputValue += '-' + inputNumbersValue.substring(9, 11);
59          }
60      } else {
61          formattedInputValue = '+' + inputNumbersValue.substring(0, 16);
62      }
63      input.value = formattedInputValue;
64  }
65  var onPhoneKeyDown = function (e) {
66      // Clear input after remove last symbol
67      var inputValue = e.target.value.replace(/\D/g, '');
68      if (e.keyCode == 8 && inputValue.length == 1) {
69          e.target.value = "";
70      }
71  }
72  for (var phoneInput of phoneInputs) {
73      phoneInput.addEventListener('keydown', onPhoneKeyDown);
74      phoneInput.addEventListener('input', onPhoneInput, false);
75      phoneInput.addEventListener('paste', onPhonePaste, false);
76  }
77})

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.