Как подстрока в javascript, но без символов

Мне нужно использовать (метод подстроки) в моем проекте веб-сети 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));

Пожалуйста, опубликуйте свой код.

SnoopFrog 24.01.2023 17:49

Я добавил код, что еще нужно? дайте мне знать

TheCoderBoy 24.01.2023 17:57

Мне нужно использовать метод подстроки, а вам? Требуется ли использовать substring() и ничего больше? В вашем коде используется .substr(), а не .substring() — обратите внимание, что .substr устарел

freedomn-m 24.01.2023 18:04

«IpAddressInput» — поэтому ввод всегда будет в формате \d{4}:\d{4}:\d{4}:... — кажется, вы можете получить результат, используя .substr(1,13) (14-1)

freedomn-m 24.01.2023 18:05

Если ваш формат достаточно надежен, базовым методом может быть 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.

freedomn-m 24.01.2023 18:11
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
5
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ответ 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)

freedomn-m 24.01.2023 19:42

Другие вопросы по теме