вывести слова определенной длины с помощью регулярных выражений
var text = 'яблоко, сок, морковка, помидор, тыква, арбуз' // Найти слова, в которых 5 букв console.log('5 букв: ', text.match(/\b\w{5}\b/g)); Но оказывается \b с кириллицей не работает. Как быть? |
alexandr2006,
регулярка то зачем? длину и меряйте |
alexandr2006,
var text = 'яблоко, сок, морковка, помидор, тыква, арбуз' // Найти слова, в которых 5 букв alert(text.split(/[\s,]+/).filter(function(el) { return el.length == 5 })); |
А мне надо регуляркой
|
Цитата:
<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,
с пробелом и без первого слова |
Цитата:
|
destus,
а ты сделай одно слово из 5 букв и посмотри что будет |
Цитата:
|
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> |
Цитата:
А вообще чтобы не было такого можно в return elem.replace(/\s*/g,'') включать удаление всего, что не буква русского алфавита. Например, так <script> document.addEventListener('DOMContentLoaded', function () { var text = ',арбуз'; text = ' ' + text + ' '; var res = text.match(/[^А-Яа-яёЁ]([А-Яа-яёЁ]{5})(?=[^А-Яа-яёЁ])/g); var res2 = res.map(function(elem){ return elem.replace(/[^А-Яа-яёЁ]*/g, ''); }) alert('5 букв: ' + res2); }) </script> |
Вариант2:
var text = 'яблоко, сок, морковка, морковка, помидор, ,тыква, арбуз' function getword(text,L) { var reg = new RegExp("(?:^|[^а-яё])[а-яё]{"+(L-1)+"}[a-zа-яё](?=[^а-яё]|$)", "ig"); return text.match(reg).join(',').replace(/^[^а-яё]+/,'').split(/[^а-яё]+/); } alert(getword(text,5)) |
Deff,
c match трудно избежать пробела в начале |
Цитата:
var text = 'яблоко, сок, морковка, помидор, тыква, арбуз' function getwords(text) { var reg = /(?:^|[\b\., ])[a-zа-яё]{7}[a-zа-яё](?=[\b\., ]|$)/ig; return text.match(reg); } alert(getwords(text) |
alexandr2006,
6 строка где ) в конце? ну и кодировку указать <meta charset="utf-8"> |
Цитата:
|
Часовой пояс GMT +3, время: 09:45. |