Ваш перший функція майже правий. Просто видаліть прапор 'g', який означає «глобальний» (редагувати), і дайте йому деякий контекст, щоб помітити друге «r».
Редагувати: не бачив, що це другий 'r', перш ніж додати «/». Потрібно \ / уникнути '/' під час використання аргументу regEx. Дякую за обґрунтування, але я помилився, тому я виправлю і додам більше деталей для людей, зацікавлених краще зрозуміти основи regEx, але це спрацює:
mystring.replace(/\/r/, '/')
Тепер для надмірного пояснення:
Під час читання / написання шаблону regEx подумайте про: <a символ чи набір символів> з подальшим <a символом чи набором діаграм> з подальшим <...
У regEx <a символ чи набір діаграм> можуть бути один за одним:
/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 - це їх розбиття на ці частини.