ฟังก์ชั่นแรกของคุณเกือบจะถูกแล้ว เพียงแค่ลบเครื่องหมาย 'g' ซึ่งย่อมาจาก 'global' (แก้ไข) และให้บริบทเพื่อระบุจุดที่สอง
แก้ไข: ไม่เห็นว่าเป็น 'r' ตัวที่สองก่อนเพิ่ม '/' ต้องการ \ / เพื่อหลีกเลี่ยง '/' เมื่อใช้งาน regEx ขอบคุณสำหรับ upvotes แต่ฉันผิดฉันจะแก้ไขและเพิ่มรายละเอียดเพิ่มเติมสำหรับผู้ที่สนใจในการทำความเข้าใจพื้นฐานของ regEx ให้ดีขึ้น แต่สิ่งนี้จะใช้ได้:
mystring.replace(/\/r/, '/')
ตอนนี้สำหรับคำอธิบายที่มากเกินไป:
เมื่ออ่าน / เขียนรูปแบบ regEx ให้คำนึงถึง: <a character หรือชุด charcters> ตามด้วย <a character หรือชุด charcters> ตามด้วย <...
ในอักขระหรือชุดของ charcters <a regEx อาจมีทีละรายการ:
/each char in this pattern/
ดังนั้นอ่านด้วย e ตามด้วย a, ตามด้วย c, ฯลฯ ...
หรืออักขระหรือชุดอักขระ charcters> หนึ่งตัวอาจเป็นอักขระที่อธิบายโดยคลาสอักขระ:
/[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)
ดังนั้น smoosh พวงกัน:
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 เริ่มมองมันทั้งหมดแบ่งออกเป็นชุดของสิ่งต่าง ๆ เป็นจุดพื้นฐาน แต่เป็นสิ่งที่ทำให้ฉันผ่านไปได้สักระยะดังนั้นฉันจึงไปอธิบายที่นี่เพราะฉันคิดว่ามันเป็นสิ่งที่จะช่วยให้ OP และคนใหม่ ๆ ในการทำความเข้าใจกับสิ่งที่เกิดขึ้น กุญแจสำคัญในการอ่าน / เขียน regEx คือแบ่งมันออกเป็นส่วน ๆ