Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как получить имена классов с помощью Регулярного выражения? (https://javascript.ru/forum/misc/75541-kak-poluchit-imena-klassov-s-pomoshhyu-regulyarnogo-vyrazheniya.html)

Teamur 18.10.2018 00:13

Как получить имена классов с помощью Регулярного выражения?
 
Второй элемент массива - то, что нужно:
'.a'.match(/\.(\w+)/)
// -> [ '.a', 'a' ]

Пробую получить больше классов и добавляю флаг g.
'.a.b.c.d'.match(/\.(\w+)/g);
// -> [ '.a', '.b', '.c', '.d' ]

Почему перестали возвращаться имена без точек?

Ожидание 1:
[ '.a', 'a', '.b', 'b', '.c', 'c', '.d', 'd' ]

В идеале:
[ 'a', 'b', 'c', 'd' ]

В общем нужно проверить, что на протяжении всей строки идет чередование "точка-слово-точка-слово..." и если это так, забрать только слова

j0hnik 18.10.2018 00:22

'.a.b.c.d'.match(/(?<=\.)\w+/g);

под новые браузеры.

рони 18.10.2018 01:54

Цитата:

Сообщение от Teamur
В общем нужно проверить, что на протяжении всей строки идет чередование "точка-слово-точка-слово..." и если это так, забрать только слова

var a = '.a.b.c.d';
alert(/^(\.\w+)+$/.test(a) && a.match(/\w+/g));

Teamur 18.10.2018 09:21

j0hnik, как появится новый браузер, проверю. Думаю, что работает, спасибо.

рони, похоже на правду, спасибо.


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