вывести слова определенной длины с помощью регулярных выражений
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, время: 21:16. |