Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » javascript регулярные выражения

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6

Открыть новую тему     Написать ответ в эту тему

just aero



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброе <localtime> всем.
 
Подскажите решение распостраненной (казалось бы) задачи:
 
1. Разделить ай пи адрес 192.168.0.0 на четыре числа.
2. Разделить диапазон 1-5 на два числа.
 
Заранее спасибо.
 
Пока получилось только проверка валидности введенного адреса:

Код:
var re = /^([0-9]|[0-9][0-9]|[01][0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[0-9][0-9]|[01][0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/;
var str1 = ipinput.value;
var result = re.test(str1) ? "правильно" : "неправильно";

 


 
Разобрался. Решение как всегда оказалось простым =)

Код:
var re = /\d+/g;
var str1 = ipinput.value;
var str2 = str1.match(re);
var result = str2[0]+" - "+str2[1]+" - "+str2[2]+" - "+str2[3];

Модератор, закрывай тему, а меня бань за флуд =)

Протестировать свое регулярное выражение можно в онлайне тут JRX

Всего записей: 13 | Зарегистр. 25-04-2007 | Отправлено: 07:23 30-07-2008 | Исправлено: Cheery, 23:40 16-01-2010
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xerpal

Цитата:
Или кавычки мешают?

мешают - их там быть вообще не должно.
в кавычках - строка и ищется прямое совпадение
 

Цитата:
Я пытаюсь их убирать - но тогда ошибка..

что и откуда и какое сообщение об ошибке?
 

Цитата:
alert("text here &lt;strong&gt;second text here&lt;/strong&gt;".replace(/&lt;strong.*?&gt;\/strong&gt;/g,''));

а разницу не видно??

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 09:57 09-03-2017
xerpal



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кавычки убрал и правда заработало...
 
Добавлено:
Mavrikii

Цитата:
что и откуда и какое сообщение об ошибке?

К примеру этот код прекращал выполнение скрипта  

Код:
var vv = /\(&lt;)(/?[^(&gt;)]+)(&gt;)/gi;

Поэтому я и стал брать в кавычки, ибо постоянно при убирании их скрипт прекращал работать.

Всего записей: 1584 | Зарегистр. 08-10-2011 | Отправлено: 09:57 09-03-2017 | Исправлено: xerpal, 10:00 09-03-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xerpal

Цитата:
К примеру этот код прекращал выполнение скрипта  

потому, что / внутри (перед ?) закрывал регулярное выражение и все остальное приводило к ошибке.  
 
регулярку в js можно создать 3 способами

Код:
/ab+c/i;
new RegExp('ab+c', 'i');
new RegExp(/ab+c/, 'i');

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 10:00 09-03-2017 | Исправлено: Mavrikii, 10:02 09-03-2017
xerpal



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
регулярку в js можно создать 3 способами

О, не знал, ок.

Всего записей: 1584 | Зарегистр. 08-10-2011 | Отправлено: 10:36 09-03-2017
IvanStepanov

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как записать с помощью REGEXP такое выражение:
"в цепочке символов длиной не более 400 символов должны встречаться в произвольном порядке любые не менее чем 5 из данных 10-ти слов" и далее перечисляются слова.

Всего записей: 136 | Зарегистр. 11-05-2019 | Отправлено: 15:47 15-05-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
IvanStepanov
и это на js?
/(слово1|слово2|слово3){5,}/
что то такое
 
ps: а вот так не нужно делать, это нарушение правил - Регулярные выражения

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 18:36 15-05-2019 | Исправлено: Mavrikii, 18:43 15-05-2019
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
obj.value = obj.value.replace(/([а-яё])?&#225;(?=($|[а-яёА-ЯЁ]))/gi, '$1А');

 
Всё-таки, не срабатывает:
 
https://jsfiddle.net/hdma/hrp1j7y6/
 
Как правильно заменять приведенную букву, когда она в обрамлении кириллицы?

Всего записей: 1362 | Зарегистр. 05-04-2010 | Отправлено: 23:17 24-04-2023 | Исправлено: D1D1D1D, 23:22 24-04-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
Всё-таки, не срабатывает:

где именно не срабатывает?

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 23:31 24-04-2023
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
https://i.imgur.com/gZ1drlR.jpg
 
Добавлено:
Работает после кириллицы, до и после кириллицы. Не работает перед кириллицей https://jsfiddle.net/hdma/hrp1j7y6/

Всего записей: 1362 | Зарегистр. 05-04-2010 | Отправлено: 23:40 24-04-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
Работает после кириллицы, до и после кириллицы. Не работает перед кириллицей

лень было думать, сделал в лоб
https://jsfiddle.net/kxnwm58e/

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 01:36 25-04-2023
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Спасибо!
 
Возможно ли более компактно записать следующие замены? -

Код:
   obj.value = obj.value.replace(/(((\s|^)&#225;[а-яё])|([а-яё])&#225;(\s|$|[а-яё]))/gi, function(m) {return m.replace('&#225;', 'а');});
   obj.value = obj.value.replace(/(((\s|^)&#233;[а-яё])|([а-яё])&#233;(\s|$|[а-яё]))/gi, function(m) {return m.replace('&#233;', 'е');});
   obj.value = obj.value.replace(/(((\s|^)&#243;[а-яё])|([а-яё])&#243;(\s|$|[а-яё]))/gi, function(m) {return m.replace('&#243;', 'о');});
   obj.value = obj.value.replace(/(((\s|^)&#250;[а-яё])|([а-яё])&#250;(\s|$|[а-яё]))/gi, function(m) {return m.replace('&#250;', 'и');});
   obj.value = obj.value.replace(/(((\s|^)&#253;[а-яё])|([а-яё])&#253;(\s|$|[а-яё]))/gi, function(m) {return m.replace('&#253;', 'у');});

 
https://jsfiddle.net/hdma/y1bhk8eo/

Всего записей: 1362 | Зарегистр. 05-04-2010 | Отправлено: 02:02 25-04-2023 | Исправлено: D1D1D1D, 02:03 25-04-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
Возможно ли более компактно записать следующие замены?

в цикле. запись одна, но подставляются разные значения из массива.
при чем цикл можно внутри function, а захватывать по всем вариантам подставляя массив символов в [], вместо единичного.
 
как то так
https://jsfiddle.net/4au5qnt6/

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 02:52 25-04-2023 | Исправлено: Mavrikii, 02:58 25-04-2023
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В другом скрипте такой формат замен:
 

Код:
             .replace(/([а-яёА-ЯЁ])/g, '$1')

 
Но в таком виде не работает:
 

Код:
             .replace(/(((\s|^)&#225;[а-яё])|([а-яё])&#225;(\s|$|[а-яё]))/gi, function(m) {return m.replace('&#225;', 'а');});

 
Как правильно вписать?

Всего записей: 1362 | Зарегистр. 05-04-2010 | Отправлено: 02:59 25-04-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
В другом скрипте такой формат замен

зачем чего? оно заменяет на само себя.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 03:01 25-04-2023
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Это просто ради примера, но именно формат такой:

Код:
 .replace(/([а-яёА-ЯЁ])/g, '$1')

Всего записей: 1362 | Зарегистр. 05-04-2010 | Отправлено: 03:30 25-04-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
Это просто ради примера, но именно формат такой:

и? нельзя так сделать замену по списку, просто потому, что нельзя сделать сооветствие что на что менять. пример берет то, что поймалось в скобки и заменяет на себя же, значит там написано другое и для других целей.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 03:34 25-04-2023
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Имелось в виду, что формат строки нужен такой:
 

Код:
             .replace(/([а-яёА-ЯЁ])/g, '$1')

 
А сами замены (что на что менять) нужны отсюда:
 

Код:
             .replace(/(((\s|^)&#225;[а-яё])|([а-яё])&#225;(\s|$|[а-яё]))/gi, function(m) {return m.replace('&#225;', 'а');});

Всего записей: 1362 | Зарегистр. 05-04-2010 | Отправлено: 09:39 25-04-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
Имелось в виду, что формат строки нужен такой

зачем? чем вам плохо такой вариант? не ну хочется городить с регуляркой.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 09:57 25-04-2023
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Я уже собирался его применить, но он в таком виде там не работает. То есть, там до и после такие работающие замены:
 

Код:
 
             .replace(/\.([а-яёА-ЯЁa-zA-Z])/g, '<b>.$1</b>')
 
             .replace(/[\u00A0\u1680\u180e\u2000-\u2009\u200a\u200b\u202f\u205f\u3000]/g,' ')

 
Но если между ними вставить новую замену:
 

Код:
 .replace(/(((\s|^)&#225;[а-яё])|([а-яё])&#225;(\s|$|[а-яё]))/gi, function(m) {return m.replace('&#225;', 'а');});

 
- скрипт перестает работать.

Всего записей: 1362 | Зарегистр. 05-04-2010 | Отправлено: 10:43 25-04-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
Но если между ними вставить новую замену:

догадайтесь почему, если между ними. точка с запятой в конце не смущает?

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 10:45 25-04-2023
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6

Компьютерный форум Ru.Board » Интернет » Web-программирование » javascript регулярные выражения


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru