Замените ":" на "-", одновременно форматируя адрес ma c - PullRequest
6 голосов
/ 26 февраля 2020

В настоящее время я использую это для форматирования входного текста, чтобы иметь "-" после двух символов, и он заменяет символы, которые не являются "af" или "0-9" на "".

var macAddress = document.getElementById("macInput");

function formatMAC(e) {
  var r = /([a-f0-9]{2})([a-f0-9]{2})/i,
      str = e.target.value.replace(/[^a-f0-9]/ig, "");

  while (r.test(str)) {
    str = str.replace(r, '$1' + '-' + '$2');
  }
  e.target.value = str.slice(0, 17);
};

macAddress.addEventListener("keyup", formatMAC, false);

Я хочу, чтобы он также обнаружил, если пользователь пишет «:», и заменил его на «-», поэтому становится невозможным написать «:». Не уверен, как это сделать.

1 Ответ

3 голосов
/ 26 февраля 2020

Легко. .split().join()

var macAddress = document.getElementById("macInput");

function formatMAC(e) {
  var r = /([a-f0-9]{2})([a-f0-9]{2})/i,
      str = e.target.value.replace(/[^a-f0-9]/ig, "");

  while (r.test(str)) {
    str = str.replace(r, '$1' + '-' + '$2');
  }
  e.target.value = str.slice(0, 17).split(':').join('');
};

macAddress.addEventListener("keyup", formatMAC, false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...