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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
just aero

Цитата:
Разделить ай пи адрес 192.168.0.0 на четыре числа.

split по \.
 

Цитата:
2. Разделить диапазон 1-5 на два числа.

аналогично по -


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 17:41 30-07-2008
NORIO



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пытаюсь написать макрос-плагин изменения раскладки в котором написано слово, на jscript для WireKeys.
Но код не работает так как предпологается, хотя по идее должен.
 
Для примера приведу упрощённый образец кода
 

Код:
 
var OUTPUT="";
var tmp=unescape('%ESCAPED');      // переменная tmp содержит слово в котором будут заменятся символы, допустим что в данном примере это только одна буква "Д" или "L"
 
    arrRus = new Array ('L','Д');
    arrLat = new Array ('Д','L');
     
    for (curChar in arrLat)
    {
        tmp = tmp.replace(new RegExp(arrRus[curChar], 'g' ), arrLat[curChar]);
    }
     
    OUTPUT = tmp;
             
 
OUTPUT;                 // вывод данных в WireKeys
 

 
 
Например нужно что бы все буквы "L" содержащаяся в переменной tmp заменялись на "Д",  И наоборот все "Д" заменялиь на "L"
проблема в том что вроде должно работать но не работает как надо.  
 
А именно только "Д" конвертируется в "L",  а "L" не конвертируется в "Д" хотя регулярное выражение должно было бы заменить.
В чём здесь ошибка?

Всего записей: 875 | Зарегистр. 18-12-2004 | Отправлено: 17:46 18-08-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NORIO

Цитата:
В чём здесь ошибка?

в том, что вы сначала заменили все Д на L.. а потом все L, включая и новые, из предыдущей замены, меняете на Д опять.. пример
буквыДиL->буквыLиL->буквыДиД
ну или наоборот
->буквыДиД->буквыLиL

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 17:55 18-08-2008
NORIO



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ах вот оно что.  
Двойная замена. L > Д > L
 
Спасибо, понял.

Всего записей: 875 | Зарегистр. 18-12-2004 | Отправлено: 18:33 18-08-2008
arreke



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
надо используя регулярные выражения найти, где в тексте имеется такое сочетание символов:
 
Контакты:</span> <table cellspacing=0 cellpadding=5 class='t_orange'><tr><td><b>
 
при нахождении добавлять к концу этого сочетание текст, например, blablabla
я знаю это не сложно, но я не умею, совсем.
помогите, пожалуйста.
 

Всего записей: 98 | Зарегистр. 11-01-2007 | Отправлено: 19:15 01-11-2008
SAOD

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
arreke
Что то типо этого

Код:
 
text.replace(/(Контакты:<\/span> <table cellspacing=0 cellpadding=5 class='t_orange'><tr><td><b>)/g, "$1blabla");
 

Всего записей: 228 | Зарегистр. 30-12-2006 | Отправлено: 22:07 01-11-2008
arreke



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
он же его заменит, а мне надо чтобы добавил в конец

Всего записей: 98 | Зарегистр. 11-01-2007 | Отправлено: 08:31 02-11-2008
SAOD

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
arreke
А попробовать на практике?
Как можно заметить вторым параметром в методе replace у меня в начале стоит $1. Это так называемая обратная ссылка. Она указывает на заменяемый шаблон и соответственно подставляет его вместо  себя. В результате и получим добавление к концу строки 'blabla'

Всего записей: 228 | Зарегистр. 30-12-2006 | Отправлено: 08:37 02-11-2008
arreke



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2 SAOD
 
Спасибо, разобрался.

Всего записей: 98 | Зарегистр. 11-01-2007 | Отправлено: 09:17 02-11-2008 | Исправлено: arreke, 09:18 02-11-2008
Monkman

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем! Не получается выделить из строки "http://blablabla.blablalbla.ru/indexilieshechtoto.html?blablabla.htm"  то, что между последним "/" и первым "?", т.е. в данном случае "indexilieshechtoto.html". Нелп плиз! Вроде бы, все должно быть просто, но моего опыта не хватает решить эту задачу
 
Добавлено:
Сам нашел решение для своей.
решение:
/(?!\/)[^\/\?]*(?=\?)/i
 
правда это решение не работает в случае "http://blablabla.blablalbla.ru/indexilieshechtoto.html" (те без знака вопроса) разбираюсь....
 
Добавлено:
Решение для строки "http://bla.bla.ru/xbla.html?blahtm" и также подходит для строки "http://bla.bla.ru/xbla.html" - из обоих строк выделяет "xbla.html" :
 
/(?!\/)[^\/\?]*(?=\?)|[^\/]*$/i

Всего записей: 181 | Зарегистр. 24-01-2007 | Отправлено: 02:17 21-02-2009 | Исправлено: Monkman, 03:05 21-02-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Monkman
зачем так сложно?
/.*\/([^\/\?]*)/

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 06:59 21-02-2009
Monkman

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

Цитата:
зачем так сложно?  
/.*\/([^\/\?]*)/
- Это я так понял возвращает массив из полной строки и требуемого результата? (Из "http://bla.bla.ru/xbla.html?bla" получаем "http://bla.bla.ru/xbla.html,xbla.html")

Всего записей: 181 | Зарегистр. 24-01-2007 | Отправлено: 13:56 21-02-2009 | Исправлено: Monkman, 13:57 21-02-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Monkman
да, так работает. первое в массиве - весь кусок, который попал под выражение, второе - то, что в скобках

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:38 21-02-2009
SANYA_FIFA



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте! Помогите пожалуйста. Нужно найти все предложения в тексте с троеточиями

Всего записей: 1 | Зарегистр. 08-04-2009 | Отправлено: 11:05 08-04-2009
cainrus



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как разбить регулярным выражением строку типа:  
<script>var some_super_code=true</script><script>var some_duper_code=false</script>  
 
на отдельные куски с тэгами?  
 
p.s.  
разбиваться будет много скриптов, а не 2 =)  
 
p.s.  
сколько искал и читал о регулярах, так и не вдуплил как сделать подобное

Всего записей: 69 | Зарегистр. 27-08-2008 | Отправлено: 03:01 28-06-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cainrus
вы уверены, что хотите разбивать данное выражение именно с помощью javascript? откуда вы его взяли?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 05:18 28-06-2009
cainrus



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Да, есть php-скрипт, который получает при генерации страницы адреса js-скриптов и стилей, он пробегается по всем нужным папкам и создает в шапке html документа на каждый отдельный файл(смотря что заказано)
Код:
<script>/*code*/</script> или <style>/*code*/</style>

 
затем после загрузки страницы срабатывает js-скрипт, который считывает сгенерированный список скриптов и стилей, добавляет в хранилище(WhatWG/Geard/userData/Flash смотря что доступно) то - чего там еще нету,  чтобы не грузить эти скрипты при ajax(если понадобятся).
 
а ajax как раз  запрашивает у php-скрипта(упомянутого в самом начале) допустим tiny_MCE, сначала провериться хранилище, затем, если оно пустое, то будет сделан запрос php-скрипту, который снова составит список и вернет его.
 
сначала нужно разбить скрипты и стили на отдельные друг от друга куски, а потом , исходя из тэгов определить скрипт это или стиль.
 
поэтому нужно все-таки разбить регулярным выражением стили и скрипты:

Код:
<style>/*code*/</style><script>/*code*/</script><script>/*code*/</script>

 
P.S.
пробовал с не запоминающими скобками - никак не получается.
 

Всего записей: 69 | Зарегистр. 27-08-2008 | Отправлено: 13:51 28-06-2009
cainrus



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
может быть тема затонула? кто-нибудь может помочь?

Всего записей: 69 | Зарегистр. 27-08-2008 | Отправлено: 03:06 04-07-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cainrus
тестируйте
http://www.cuneytyilmaz.com/prog/jrx/
<(.*?)>.*?<\/\1>

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:11 04-07-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 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