chil
@chil
Junior

Почему регулярка ищет все символы в таком случае?

Скажите пожалуйста, почему регулярка ищет все символы "s" в таком случае?
const str = "card's ff bal s fdfgbal dkjgkjsff others";
const reg = new RegExp('card|s|s', 'g');
str.replace(reg, (sp, match) => {
  console.log(sp,match)
})

Должна же работать до первого случая. Как это исправить?
Спасибо
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 4
Должна же работать до первого случая.
Не должна.

Как ето исправить?
Убрать флаг глобального поиска, который вы зачем-то добавили: learn.javascript.ru/regexp-introduction#flagi
Ответ написан
@Alexander1705
мне нужно чтоб здесь вывелось "card, s, s" и все
str.replace(reg, (sp, match) => {
  console.log(sp,match) // card, s, s 
})

const str = "card's ff bal s fdfgbal dkjgkjsff others";
const reg = new RegExp('(card).*(s).*(s)', 'g');
str.replace(reg, (match, p1, p2, p3, offset, string) => {
  console.log(match, p1, p2, p3, offset, string)
})
Ответ написан
@spinking
const reg = /card|s+[' ]/g;
Ответ написан
То, что вы ищете.

const str = "card's ff bal s fdfgbal dkjgkjsff others";
const reg = /card|\bs\b/g;
str.replace(reg, (sp, match) => {
  console.log(sp,match)
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Apsis Ростов-на-Дону
от 85 000 руб.
IBC Human Resources Екатеринбург
от 80 000 руб.
20 марта 2019, в 01:07
1000 руб./за проект
20 марта 2019, в 00:27
2000 руб./за проект
19 марта 2019, в 23:14
6000 руб./за проект