Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.02.2016, 10:57
Аспирант
Отправить личное сообщение для alexandr2006 Посмотреть профиль Найти все сообщения от alexandr2006
 
Регистрация: 30.01.2013
Сообщений: 54

вывести слова определенной длины с помощью регулярных выражений
var text = 'яблоко, сок, морковка, помидор, тыква, арбуз'

// Найти слова, в которых 5 букв
console.log('5 букв: ', text.match(/\b\w{5}\b/g));


Но оказывается \b с кириллицей не работает. Как быть?
Ответить с цитированием
  #2 (permalink)  
Старый 08.02.2016, 11:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

alexandr2006,
регулярка то зачем? длину и меряйте
Ответить с цитированием
  #3 (permalink)  
Старый 08.02.2016, 11:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

alexandr2006,
var text = 'яблоко, сок, морковка, помидор, тыква, арбуз'

// Найти слова, в которых 5 букв
alert(text.split(/[\s,]+/).filter(function(el) {
  return el.length == 5
}));
Ответить с цитированием
  #4 (permalink)  
Старый 08.02.2016, 12:10
Аспирант
Отправить личное сообщение для alexandr2006 Посмотреть профиль Найти все сообщения от alexandr2006
 
Регистрация: 30.01.2013
Сообщений: 54

А мне надо регуляркой
Ответить с цитированием
  #5 (permalink)  
Старый 08.02.2016, 12:59
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Сообщение от alexandr2006 Посмотреть сообщение
А мне надо регуляркой
попробуй так
<script>
         document.addEventListener('DOMContentLoaded', function () {
             var text = 'яблоко, сок, морковка, помидор, тыква, арбуз';
             text = ' ' + text + ' ';
             var res = text.match(/[^А-Яа-яёЁ]([А-Яа-яёЁ]{5})(?=[^А-Яа-яёЁ])/g);
             var res2 = res.map(function(elem){
                 return elem.replace(/\s*/g,'');
             })
             alert('5 букв: ' + res2);
         })

	</script>

Последний раз редактировалось destus, 08.02.2016 в 14:51.
Ответить с цитированием
  #6 (permalink)  
Старый 08.02.2016, 14:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

destus,
с пробелом и без первого слова
Ответить с цитированием
  #7 (permalink)  
Старый 08.02.2016, 14:49
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Сообщение от рони Посмотреть сообщение
destus,
с пробелом и без первого слова
В первом слове не пять букв.

Последний раз редактировалось destus, 08.02.2016 в 14:52.
Ответить с цитированием
  #8 (permalink)  
Старый 08.02.2016, 15:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

destus,
а ты сделай одно слово из 5 букв и посмотри что будет
Ответить с цитированием
  #9 (permalink)  
Старый 08.02.2016, 15:25
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Сообщение от рони Посмотреть сообщение
destus,
а ты сделай одно слово из 5 букв и посмотри что будет
http://pixs.ru/showimage/adadadadpn_...3_20595101.png
Ответить с цитированием
  #10 (permalink)  
Старый 08.02.2016, 16:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

destus,
а если так
<script>
         document.addEventListener('DOMContentLoaded', function () {
             var text = ',арбуз';
             text = ' ' + text + ' ';
             var res = text.match(/[^А-Яа-яёЁ]([А-Яа-яёЁ]{5})(?=[^А-Яа-яёЁ])/g);
             var res2 = res.map(function(elem){
                 return elem.replace(/\s*/g,'');
             })
             alert('5 букв: ' + res2);
         })

	</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена в строке всех точек на пробелы без использования регулярных выражений AlexSol Общие вопросы Javascript 2 02.04.2015 15:28
каким образом вывести текст с помощью SetTimeOut В DIV? bratkovsky Общие вопросы Javascript 2 04.08.2012 00:15
Поиск текста с помощью регулярных выражений Worker Javascript под браузер 7 10.03.2011 10:08
Создание фильтра базы ссылок с помощью регулярных выражений SvetozarPNZ Events/DOM/Window 8 28.10.2010 13:15
Изменить таг с помощью регулярных выражений alexKniaz Общие вопросы Javascript 1 28.10.2008 17:38