您的第一个功能几乎是正确的。只需删除代表“全局”(编辑)的“ g”标志,并为其提供一些上下文,以发现第二个“ r”。
编辑:在添加'/'之前没有看到它是第二个'r'。使用regEx arg时需要\ /来转义'/'。感谢您的支持,但我错了,所以我将为有兴趣更好地了解regEx基础知识的人们修复并添加更多详细信息,但这将有效:
mystring.replace(/\/r/, '/')
现在进行过多的解释:
读/写regEx模式时,请考虑以下方面:<一个字符或一组字符>后跟<一个字符或一组字符>后跟<...
在regEx中,一个字符或一组字符一次可以是一个:
/each char in this pattern/
因此读为e,后跟a,然后是c,依此类推...
或单个<一个字符或一组字符>可以是字符类描述的字符:
/[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看起来古怪的出现,一切都分解为一系列事物(可能是多字符事物),它们依次相继出现。有点基本的要点,但花了我一段时间才走过去,所以我在这里过分地解释了这一点,因为我认为这将帮助OP和regEx的其他新手了解正在发生的事情。读/写regEx的关键是将其分解为这些部分。