Ваш первый функционал почти прав. Просто удалите флаг «g», который обозначает «глобальный» (правка), и дайте ему некоторый контекст, чтобы определить второй «r».
Изменить: не видел, что это был второй «г», прежде чем добавить «/». Требуется \ / для экранирования '/' при использовании аргумента regEx. Спасибо за возражения, но я был неправ, поэтому я исправлю и добавлю больше подробностей для людей, заинтересованных в лучшем понимании основ RegEx, но это будет работать:
mystring.replace(/\/r/, '/')
Теперь для чрезмерного объяснения:
Когда вы читаете / пишете шаблон regEx, думайте так: <символ или набор символов>, затем <символ или набор символов>, а затем <...
В regEx <символ или набор символов> может быть по одному:
/each char in this pattern/
Так что читайте как e, затем a, затем c и т.д ...
Или один символ <a или набор символов> могут быть символами, описываемыми классом символов:
/[123!y]/
//any one of these
/[^123!y]/
//anything but one of the chars following '^' (very useful/performance enhancing btw)
Или расширен, чтобы соответствовать количеству символов (но все же лучше всего рассматривать его как отдельный элемент с точки зрения последовательного шаблона):
/a{2}/
//precisely two 'a' chars - matches identically as /aa/ would
/[aA]{1,3}/
//1-3 matches of 'a' or 'A'
/[a-zA-Z]+/
//one or more matches of any letter in the alphabet upper and lower
//'-' denotes a sequence in a character class
/[0-9]*/
//0 to any number of matches of any decimal character (/\d*/ would also work)
Так что собери кучу вместе
var rePattern = /[aA]{4,8}(Eat at Joes|Joes all you can eat)[0-5]+/g
var joesStr = 'aaaAAAaaEat at Joes123454321 or maybe aAaAJoes all you can eat098765';
joesStr.match(rePattern);
//returns ["aaaAAAaaEat at Joes123454321", "aAaAJoes all you can eat0"]
//without the 'g' after the closing '/' it would just stop at the first match and return:
//["aaaAAAaaEat at Joes123454321"]
И, конечно, я переоценил, но моя точка зрения была просто так:
/cat/
представляет собой серию из 3 элементов шаблона (за вещью следует вещь, за которой следует вещь).
И это так:
/[aA]{4,8}(Eat at Joes|Joes all you can eat)[0-5]+/
Как ни странно, как начинает выглядеть regEx, все это разбивается на ряд вещей (потенциально многосимвольных), следующих друг за другом последовательно. В некотором смысле это был базовый момент, но мне потребовалось некоторое время, чтобы пройти мимо, так что я зашел за борт, объясняя это здесь, поскольку думаю, что это поможет ОП и другим новичкам в RegEx понять, что происходит. Ключом к чтению / письму regEx является разбиение его на эти части.