AlexLearne Ответов: 2

Как реализовать оператор 'and' в регулярном выражении javascript


Если в строке есть такие слова, как " too " и "to", замените ее цифрой 2. пока мне удалось реализовать эту задачу, используя только одно из слов.
repWords('сегодня хороший день, слишком') -&ГТ; '2день-хороший день 2'

Что я уже пробовал:

 var repWords = function (arg) {
 return arg.replace(/to/g, "2")
  }
console.log(repWords("today is a wonderful day too"))

Как заставить его работать с обоими словами?

2 Ответов

Рейтинг:
2

Patrice T

Цитата:
Как реализовать оператор 'and' в регулярном выражении javascript

с технической точки зрения, это или оператор. Как и в решении 1, регулярное выражение будет соответствовать первому слову или второй. Обратите внимание, что с тех пор к входит в состав тоже есть и другие возможности проделать этот трюк.

Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
Это показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение:
Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]

[Обновление]
Я рад, что вы оценили этот способ ответа, я вижу в нем историю рыбы.
Цитата:
Дайте человеку рыбу, он будет есть в течение 1 дня, научите его, как ловить рыбу, он будет есть всю свою жизнь.


[Обновление]
Будьте осторожны, ответ Karthik Bangalore отлично работает для данного примера, но потерпит неудачу, если будет перекрытие слов.
пример:
если вы ищете замену Тото около 4, в этом случае вы заканчиваете с 22.
var repWords = function (arg) {
return arg.replace(/too|to/gi, function myFunction(x) { return '2' }).replace(/toto/gi,function(y){return '4'});
}
В этом случае вам нужно другое решение.


AlexLearne

Ты снова пришел на помощь. Мне очень нравится тот факт, что вы даете мне указания, но не настоящие ответы. Это заставляет меня задуматься.Спасибо)

Рейтинг:
15

Karthik_Mahalingam

попробовать это

var repWords = function (arg) {
            return arg.replace(/too|to/gi, function myFunction(x) { return '2' });
        }
        console.log(repWords("today is a wonderful day too"))


относиться :Метод JavaScript String replace() [^]

Скрипка: ссылка[^]


0x01AA

Мне нравятся ваши скрипичные примеры, 5.

Karthik_Mahalingam

Спасибо :)

AlexLearne

Большое вам спасибо, я знаю, что это не входит в задачу, но я никогда не видел примера, который вы мне дали. Как бы вы решили эту проблему, предположим, что мы также хотим добавить слово "Для", которое вместо этого вернет 4, Нужно ли мне использовать тот же подход? Еще раз спасибо!

Karthik_Mahalingam

- да, можешь.

var repWords = функция (arg) {
вернуться арг.заменить(/ТОО|от/ги, функции myfunction(х) { возвращение '2' }).замена (С/за/ги,функция(г){возвращение '4'});
}