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

Должна же работать до первого случая. Как это исправить?
Спасибо
  • Вопрос задан
  • 149 просмотров
Пригласить эксперта
Ответы на вопрос 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)
});
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
AwardWallet Пермь
от 40 000 до 100 000 руб.
RUVOD Москва
До 150 000 руб.
UMA.TECH Москва
от 150 000 до 215 000 руб.
25 июн. 2019, в 00:24
15000 руб./за проект
24 июн. 2019, в 23:27
8000 руб./за проект