Создание регулярного выражения для получения нескольких значений и печати

  • Автор темы Interesuyuschijsya
  • 42
  • Обновлено
  • 13, May 2024
  • #1
Мне нужна помощь с приведенным ниже кодом.

По сути, строка импорта постоянно меняется и может содержать более одного истинного значения в строке, и мне интересно, можно ли использовать регулярное выражение с помощью функции поиска, чтобы получить весь импорт и распечатать в демо-версии.
 

<p id="demo"></p>

<script>

var str = "Please 127.0.0.1:80 locate where 127.0.0.2:80 occurs!";

var pos = str.search("\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?):\d{1,5}\b");

document.getElementById("demo").innerHTML = pos;

</script>

Код (разметка): Спасибо.

Interesuyuschijsya


Рег
22 Oct, 2013

Тем
1

Постов
1

Баллов
11
  • 04, Jun 2024
  • #2
@ActiveFrost - спасибо за ответ...

После тестирования я обнаружил, что с вашим кодом есть некоторые проблемы.

- Вы изменили регулярное выражение, чтобы оно соответствовало ips, но на консоли выдается

["7.0.0.1:80", "7.0.0.2:80"], тогда как должно быть ["127.0.0.1:80","127.0.0.2:80"]

- Что-то я давно искал...

Как распечатать на странице текст, сгенерированный в console.log()?
 

CoinProfit


Рег
28 Dec, 2015

Тем
0

Постов
2

Баллов
2
  • 06, Jun 2024
  • #3
 [
"127.0.0.1:80",
"127.0.0.2:80"
]
Code (JavaScript): Output:
 console.log(

str.match(/([1-9]|[0-9]|[0-9]).([0-9]|[0-9]|[0-9]).([0-9]|[0-9]|[0-9]).([0-9]|[0-9]|[0-9]):[0-9]+/g)
);
Код (разметка):
 

Direg1


Рег
01 Sep, 2014

Тем
0

Постов
2

Баллов
2
  • 07, Jun 2024
  • #4
@ActiveFrost — Спасибо за код. У меня еще один вопрос по той же теме.

Приведенный выше код кажется понятным и после тестирования работает. Проблема в том, что когда я попытался включить его в свой скрипт, я получил ошибку. По сути, сценарий, который я создаю, получает RSS-канал, преобразуется в JSON, и оттуда код ниже выполняется в цикле for...
 

for (x in myObj.items) {

// This line should print the demo

document.write('<div id="demo"></div>');

// This lines should read the obj description from the feed and match the ip:port regex.

var str = ''+myObj.items[x].description+'';

var result = str.match(/([0-9]?[0-9]?[0-9]).([0-9]?[0-9]?[0-9]).([0-9]?[0-9]?[0-9]).([0-9]?[0-9]?[0-9]):[0-9]+/g);

for (i = 0; i < result.length; i++) {

document.getElementById("demo").innerHTML += result[i] + "<br>";

}

}

Код (разметка): Проблема в циклах for, при использовании обоих они не работают.

Идея состоит в том, чтобы получить 10 результатов ленты, прочитать описание каждого фильтра и вывести его на экран. Спасибо
 

Елена3


Рег
06 Mar, 2012

Тем
0

Постов
3

Баллов
3
  • 11, Jun 2024
  • #5
Извините, немного напутал с оператором OR. Это (см. ниже) помогает.
 var str = "Please 127.0.0.1:80 locate where 127.0.0.2:80 occurs!";

var result = str.match(/([0-9]?[0-9]?[0-9]).([0-9]?[0-9]?[0-9]).([0-9]?[0-9]?[0-9]).([0-9]?[0-9]?[0-9]):[0-9]+/g);

for (i = 0; i < result.length; i++) {

document.getElementById("output").innerHTML += result[i] + '<br>';

}
HTML:
 <div id="output"> </div>
Код (JavaScript):
 

serjs


Рег
01 Jan, 2011

Тем
0

Постов
1

Баллов
1
Тем
49554
Комментарии
57426
Опыт
552966

Интересно