#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. Спасибо! Это именно то, что я хотел. Довольно простой ответ, но работает идеально!