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)
})

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

Как ето исправить?
Убрать флаг глобального поиска, который вы зачем-то добавили: 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;
Ответ написан
Minifets
@Minifets
Hello world!!!
То, что вы ищете.

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)
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы