[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Архив » Архив » Регулярные выражения
Регулярные выражения
pekkyДата: Понедельник, 06.10.14, 22:19:27 | Сообщение # 1
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
Можно ли найти с помощью регулярных выражений список цифр? Проблема в том что я не знаю сколько их может быть например от 1-5 цифр, как написать такое выражение ?
 
ApocalypseДата: Вторник, 07.10.14, 14:10:28 | Сообщение # 2
Подполковник
Группа: Администратор
Сообщений: 107
Награды: 1
Репутация: 11
Статус: Offline
pekky, если строчка смешанная и в ней буквы и числа, то вот решение:
Код
<div id="apotext">
Привет, я строчка номер 1 из apo-ucoz.com
А я 2 строчка и во мне ещё есть цифра 154
А я третья строчка и в моём слове цифр0бук3ы
<br/><br/>
</div>

<script>
var apotext = $('#apotext').text();
var aporesult = parseInt(apotext.replace(/\D+/g, ''));
$('#apotext').after('Результат: ' + aporesult);
</script>


Ссылка на демо: http://jsfiddle.net/y8n7waxy/
 
pekkyДата: Вторник, 07.10.14, 15:34:55 | Сообщение # 3
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
Apocalypse, Круто!!!! Спасибо большое)))!)!)))
Еще вопрос, а как сделать что бы в третей строчке не взялись цифры потому что она смешаная с буквами ?
 
pekkyДата: Вторник, 07.10.14, 15:45:15 | Сообщение # 4
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
Apocalypse, Очень странно, когда я пишу этот текст на юкозе то у меня вместо
\ пишется вот это
Код
& # 9 2 ;
только без пробелов(просто тут наоборот оно это привращает в \)


Сообщение отредактировал pekky - Вторник, 07.10.14, 15:46:32
 
ApocalypseДата: Вторник, 07.10.14, 16:20:20 | Сообщение # 5
Подполковник
Группа: Администратор
Сообщений: 107
Награды: 1
Репутация: 11
Статус: Offline
Цитата pekky
Еще вопрос, а как сделать что бы в третей строчке не взялись цифры потому что она смешаная с буквами ?
Помести именно то, что тебе нужно, в <div id="apotext"></div>. Третью строчку, соответственно, вынеси за пределы дива

Цитата pekky
Очень странно, когда я пишу этот текст на юкозе то у меня вместо
\ пишется вот это
Не используй визуальный редактор для внесения изменений в html код шаблона
 
pekkyДата: Вторник, 07.10.14, 17:53:35 | Сообщение # 6
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
Apocalypse, так я нажимаю панель html кода кнопку

Сообщение отредактировал pekky - Вторник, 07.10.14, 17:54:31
 
pekkyДата: Вторник, 07.10.14, 18:37:12 | Сообщение # 7
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
Apocalypse, галимый юкоз не как не получается!!! скрипт не работает потому что оно пишет заместь \ какуето ерунду !!!!!!!!
 
pekkyДата: Вторник, 07.10.14, 18:41:30 | Сообщение # 8
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
Apocalypse, Я часто заметил что я пишу в html редакторе а оно сохраняет немного по другому
 
Al-SherДата: Вторник, 07.10.14, 19:02:42 | Сообщение # 9
Лейтенант
Группа: VIP
Сообщений: 71
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
pekky, создай файлик для JS скриптов и пиши в нём) там уж точно ничего не изменится)
 
pekkyДата: Вторник, 07.10.14, 19:05:03 | Сообщение # 10
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
Al-Sher, точно ! =)
Apocalypse, вот например мне Lisnes написал скрипт который с помощью цикла вносит все найденые фрагменты в масив. Только у него просто поиск текста
Код
function find(txt, reg){   
var m = [];   
while((myArr = reg.exec(txt)) != null){   
m.push(myArr);   
}   
return m;   
}   

var a = find('регулярка бла бла бла регулярка', /регулярка/g);   
$("#vod").html(a.join(', '))

А как мне соеденить твой скрипт в его ? или отредактировать ?


Сообщение отредактировал pekky - Вторник, 07.10.14, 19:05:38
 
Al-SherДата: Вторник, 07.10.14, 19:16:31 | Сообщение # 11
Лейтенант
Группа: VIP
Сообщений: 71
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
pekky, самой регуляркой является
Код
/\D+/g
, так что попробуй так
Код

<div id="apotext">  
Привет, я строчка номер 1 из apo-ucoz.com  
А я 2 строчка и во мне ещё есть цифра 154  
А я третья строчка и в моём слове цифр0бук3ы  
<br/><br/>  
</div>  
<script>  
function find(txt, reg){
var m = [];
while((myArr = reg.exec(txt)) != null){
m.push(myArr);
}
return m;
}
var apotext = $('#apotext').text();  
var a = find(apotext, /\D+/g);
$("#vod").html(a.join(', '))
</script>
 
pekkyДата: Вторник, 07.10.14, 19:49:41 | Сообщение # 12
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
Al-Sher, я тоже так думал, но оно почему то пишет весь текст кромк цифр
 
Al-SherДата: Вторник, 07.10.14, 20:06:56 | Сообщение # 13
Лейтенант
Группа: VIP
Сообщений: 71
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
pekky, попробуй так
Код
<div id="apotext">   
Привет, я строчка номер 1 из apo-ucoz.com   
А я 2 строчка и во мне ещё есть цифра 154   
А я третья строчка и в моём слове цифр0бук3ы   
<br/><br/>   
</div>   

<script>   
var apotext = $('#apotext').text();   
var aporesult = parseInt(apotext.replace(/\D+/g, ''));
var m = [];   
for(var i = 0; i<aporesult.length;i++) {
var c = i++;
m[i] = aporesult.substring(i,c);
}
</script>


Сообщение отредактировал Al-Sher - Вторник, 07.10.14, 20:07:40
 
АрманДата: Вторник, 07.10.14, 21:02:38 | Сообщение # 14
Лейтенант
Группа: Модератор
Сообщений: 47
Награды: 1
Репутация: 3
Замечания: 0%
Статус: Offline
pekky, Пишет весь кроме цифр, потому что апо там брал /\D+/g и заменял на "", и получались цифры, то есть он отбрасывал все, кроме цифр (заменял на пустоту).
 
pekkyДата: Среда, 08.10.14, 00:51:57 | Сообщение # 15
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
Al-Sher, а как на экран вывести ? оно сохраняет результат в масив m ?
 
АрманДата: Среда, 08.10.14, 01:02:47 | Сообщение # 16
Лейтенант
Группа: Модератор
Сообщений: 47
Награды: 1
Репутация: 3
Замечания: 0%
Статус: Offline
Al-Sher, Что за непонятный цикл, очень сомневаюсь, что оно будет работать. Это то же самое что

for(var i = 1; i < aporesult.length; i+=2)
{
m[i] = aporesult.substring(i, i);
}

pekky, Если код рабочий, то да, результат в m. Можно просто сделать alert если ты проверить хочешь
Я наверно не понял вопрос, но зачем собирать в массив найденные, если они уже в aporesult-е, он уже массив, только int-типа, можно просто убрать Parse, то есть преобразование в int.
var aporesult = apotext.replace(/\D+/g, '');
Вот тебе и массив String типа, с цифрами из текста выше.
 
pekkyДата: Среда, 08.10.14, 17:01:30 | Сообщение # 17
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
Арман, А как убрать преобразование ?
 
pekkyДата: Среда, 08.10.14, 17:48:06 | Сообщение # 18
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
Al-Sher, Этот код не работает(
 
pekkyДата: Среда, 08.10.14, 17:56:36 | Сообщение # 19
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
Арман, Ну просто переменая aporesult просто как текст, а мне нужно что бы каждый найденый кусочек добавлялся в масив
 
pekkyДата: Четверг, 09.10.14, 17:47:38 | Сообщение # 20
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
Цитата Арман
Пишет весь кроме цифр, потому что апо там брал /\D+/g и заменял на "", и получались цифры, то есть он отбрасывал все, кроме цифр (заменял на пустоту).

А почему сразу нельзя взять цифры о остальное обросить ?
 
АрманДата: Пятница, 10.10.14, 00:54:57 | Сообщение # 21
Лейтенант
Группа: Модератор
Сообщений: 47
Награды: 1
Репутация: 3
Замечания: 0%
Статус: Offline
pekky, var aporesult = apotext.replace(/\D+/g, ''); я уже убрал преобразование.

То есть у тебя более одного текстов везде ты хочешь просто собрать все цифры из всех них в один массив. Если я правильно понял то вот.
Код
<div id="apotext1">  
Привет, я строчка номер 1 из apo-ucoz.com  
</div>

<div id="apotext2">  
А я 2 строчка и во мне ещё есть цифра 154  
</div>

<div id="apotext3">  
А я третья строчка и в моём слове цифр0бук3ы  
<br/><br/>  
</div>  

<script>
var apotext = $('#apotext1').text() + $('#apotext2').text() + $('#apotext3').text();  
var aporesult = apotext.replace(/\D+/g, '');
$('#apotext').after('Результат: ' + aporesult);
</script>


Цитата pekky
А почему сразу нельзя взять цифры о остальное обросить ?

Похоже в регулярках нету выражений, которые просто цифры фильтруют, или есть, я не знаю.

Цитата pekky
Арман, Ну просто переменая aporesult просто как текст, а мне нужно что бы каждый найденый кусочек добавлялся в масив

Какой масив? Для чего? Как цифры или что? Вообще-то текст и есть массив, массив символов. То что написал апо и то, что добавил я, оба будут сохранять в переменной aporesult массив, только в случае с апо (где есть вызов функции parseInt массив int-ов - цифр, а то что у меня массив символов - текст.
 
pekkyДата: Пятница, 10.10.14, 16:18:39 | Сообщение # 22
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
Арман, Спасибо ! Это оно :)))
 
Форум » Архив » Архив » Регулярные выражения
  • Страница 1 из 1
  • 1
Поиск: