Мне нужно использовать (метод подстроки) в моем проекте веб-сети javascript, но исключая символ двоеточия :
, потому что это шестнадцатеричный IP-адрес, и я не хочу принимать двоеточия :
как строку или, скажем, число в подстроке, я хотите игнорировать это. Как это сделать?
Это пример IPV6 в поле ввода:
2001:2eb8:0dc1:54ed:0000:0000:0000:0f31
после подстроки с 1 по 12:
001:2eb8:0d
как вы можете видеть, он также принимал двоеточия, но на самом деле мне нужен этот результат:
2001:2eb8:0dc1
поэтому, исключив эти два символа, я бы получил тот же результат, что и выше, но я не знаю, как это сделать.
а вот код, IpAddressInput, это всего лишь обычное поле ввода в которое я пишу ip адрес.
Вот код:
var IpValue = $('#IpAddressInput').val();
alert(IpValue.substr(1, (12) -1));
Я добавил код, что еще нужно? дайте мне знать
Мне нужно использовать метод подстроки, а вам? Требуется ли использовать substring()
и ничего больше? В вашем коде используется .substr()
, а не .substring()
— обратите внимание, что .substr устарел
«IpAddressInput» — поэтому ввод всегда будет в формате \d{4}:\d{4}:\d{4}:...
— кажется, вы можете получить результат, используя .substr(1,13)
(14-1)
Если ваш формат достаточно надежен, базовым методом может быть var s = "2001:2eb8:0dc1:54ed:0000:0000:0000:0f31"; var add = s.substring(0, 11).split(":").length; console.info(s.substring(0, 11+add))
, но он испортится, если у вас есть двоеточия в конце, поэтому, вероятно, лучше просто зацикливать каждый символ, пока не дойдете до 12.
Ответ 1: Я думаю, что нет прямой зависимости от результатов, которые вы хотите, но этот ответ поможет вам. Я подсчитал количество двоеточий от индекса от 0 до 12, а затем нарезал исходную строку от 0 до 12 плюс число. Вот код:
let val = "2001:2eb8:0dc1:54ed:0000:0000:0000:0f31";
let numOfColons = val.slice(0, 12).match(/:/g).length;
let result = val.slice(0, 12 + numOfColons);
console.info(result)
Ответ 2: Если вы уверены, что ровно через каждые 4 символа стоит двоеточие, лучшим решением будет это. Идея состоит в том, чтобы удалить все двоеточия из строки, разрезать индекс от 0 до 12 и добавить двоеточие после каждых 4 символов. Наконец, он удаляет последнее двоеточие. Вот код:
let value = "2001:2eb8:0dc1:54ed:0000:0000:0000:0f31";
let valueExcludeColon = value.replace(/:/g, ''); // '20012eb80dc154ed0000000000000f31'
let result = valueExcludeColon.slice(0,12).replace(/(.{4})/g, "$1:"); // '2001:2eb8:0dc1:'
let finalResult = result.slice(0, -1); // 2001:2eb8:0dc1
console.info(finalResult)
Если вы уверены, что в тех местах стоит двоеточие, то просто val.slice(0,14)
Пожалуйста, опубликуйте свой код.