Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярное выражения для слов через запятую (https://javascript.ru/forum/misc/36792-regulyarnoe-vyrazheniya-dlya-slov-cherez-zapyatuyu.html)

yngwie19 27.03.2013 16:17

Регулярное выражения для слов через запятую
 
Помогите составить регулярное выражение для получения слов через ','. Количество слов в строке всегда 3:

слово, сло-во,слов.о,

Ervin 27.03.2013 16:30

var regExp = /((\w(\-|.)?){1,20},)/g; - Не сработает с русскими символами
var ruRegExp = /([a-zA-Zа-яА-Я-\.]{1,20},)/g; - Для русских включительно

tsigel 27.03.2013 17:01

var str = 'слово, сло-во,слов.о, №"№ %"№::!';
str = str.split(',');
for (var i in str) {
  alert(str[i]);
}

rgl 27.03.2013 17:59

Цитата:

Сообщение от Ervin (Сообщение 242949)
var regExp = /((\w(\-|.)?){1,20},)/g; - Не сработает с русскими символами
var ruRegExp = /([a-zA-Zа-яА-Я-\.]{1,20},)/g; - Для русских включительно

1. В регулярном выражении минус маскировать нет необходимости (кроме некоторых случаев когда он внутри квадратных скобок), а точку наоборот, маскировать надо (опять же, кроме случаев внутри квадратных скобок). У вас же все наоборот.
2. Для русских букв неплохо бы добавить Ёё, т.к. они в диапазон а-яА-Я не входят
3. Первое выражение вообще не понятно что делает, (если поправить, замасткировать точку). Находит чередовение буквы и (минуса или точки) не более 20 раз? т.е. ищет что-то вроде a-b.C-x.H ???

Ervin 27.03.2013 18:15

3)Что-то вроде. Какой запрос, такой ответ. Пример - для строки "one, two,three-four" будет массив длинной в 3 с каждым словом отдельно.


Часовой пояс GMT +3, время: 03:22.