Как получить значение IP из текстовой области с помощью регулярного выражения

#javascript #jquery #regex

#javascript #jquery #регулярное выражение

Вопрос:

Вот текстовая область.(IPv4, домен)

 96.17.109.65 fox.com
  

И я хочу изменить значение IP на другое.
вот так,

 74.125.71.106 fox.com
  

Я думаю, это будет похоже

 $('textarea').find('some regular expressions..').val('another one...');
  

Пожалуйста, помогите мне. Я просто хочу изучить регулярные выражения.. Спасибо.

Ответ №1:

Сопоставить IP-адрес с помощью регулярного выражения не так просто, как кажется. Доступно два метода:

просто, но может привести к ложным срабатываниям:

 bd{1,3}.d{1,3}.d{1,3}.d{1,3}b
  

сложный, но всегда правильный:

 b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)b
  

Если вы хотите заменить его, вам понадобится что-то вроде этого (используя простое регулярное выражение в качестве примера):

 var textarea = $('textarea');
textarea.val(textarea.val().replace(/bd{1,3}.d{1,3}.d{1,3}.d{1,3}b/g, '74.125.71.106'));
  

Ответ №2:

Это использует базовое регулярное выражение для поиска разделителя между ip и доменом, оно не проверяет, но оно должно выполнять то, что вам нужно:

 var newIP = '74.125.71.106';
var $t = $('textarea');
$t.val($t.val().replace(/^([^s] )/mg, newIP   ' '));
  

Комментарии:

1. Спасибо! Это именно то, что я хотел. Довольно простой ответ, но работает идеально!