Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как проверить повторяемость фрагмента 'слово,' в строке? (https://javascript.ru/forum/misc/73427-kak-proverit-povtoryaemost-fragmenta-%27slovo-%27-v-stroke.html)

Teamur 15.04.2018 10:39

Как проверить повторяемость фрагмента 'слово,' в строке?
 
/[a-z]+,?/g.test('apple,orange,peach'); // -> true

/[a-z]+,?/g.test('apple.,orange,peach');
// -> после apple стоит точка -> дб false, но нет (


Как проверить что на протяжении всей строки идет цикличное повторение 'слово,' при этом, чтобы допускалось отсутствие последней запятой.

рони 15.04.2018 10:48

Teamur,
alert('apple,orange,peach'.split(',').length > 1);

Teamur 15.04.2018 10:55

рони, спасибо

Но если где-то в слове содержится цифра, будет ложный true.
Кроме того, где-то может быть любой символ и периодичность нарушится.
Возможно ли это сделать регуляркой?

рони 15.04.2018 10:56

Teamur,
var b = 'apple,orange,peach';
var a = b.match(/[a-z]+(?=(,|$))/g);
alert(a && a.length > 1);

Teamur 15.04.2018 11:00

Если
var b = 'apple,7orange,peach';

Все равно возвращает true, несмотря на то что есть число перед orange.

рони 15.04.2018 11:12

Teamur,
var b = 'apple,orange,peach';
var a = /^([a-z]+,)+([a-z]+)$/.test(b);
alert(a);

рони 15.04.2018 11:14

Teamur,
var b = 'apple,7orange,peach';
var a = /^([a-z]+,)+([a-z]+)$/.test(b);
alert(a);

Teamur 15.04.2018 11:20

рони, супер.
А как допустить наличия в слове _
Если в конце поставить запятую, возвращает false.
Чтобы допускалась запятая

рони 15.04.2018 11:29

Teamur,
var b = 'apple,ora_nge,peach';
var a = /^([_a-z]+,)+([_a-z]+)$/.test(b);
alert(a);

Teamur 15.04.2018 11:29

рони,
var b = 'ap_ple,_orange,peach_,';
var a = /^([a-z_]+,?)+$/.test(b);
alert(a);

Вроде работает !


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