Javascript 正则表达式在文本编辑器中只匹配一次?
使用文本编辑器,我尝试匹配以{{,可选空格,任意字符,可选空格,以}结尾的每个字符 因此,我导出了如下正则表达式模式: var regex1=/^\{\s*?\w+\s*?\}$/g 这将匹配:{matched}或{{matched} $'.wysiwyg'.summernote{ 回调:{ onChange:functioncontents$editable{ //删除html标记 contents=contents.replace/]+>$/g; console.log'contens:'+内容; var regex=/^\{\s*?\w+\s*?\}$/g; //更新到本地存储 if regex.testcontents{ console.log'regex1 matched'; } } } }; 夏季笔记测验Javascript 正则表达式在文本编辑器中只匹配一次?,javascript,regex,Javascript,Regex,使用文本编辑器,我尝试匹配以{{,可选空格,任意字符,可选空格,以}结尾的每个字符 因此,我导出了如下正则表达式模式: var regex1=/^\{\s*?\w+\s*?\}$/g 这将匹配:{matched}或{{matched} $'.wysiwyg'.summernote{ 回调:{ onChange:functioncontents$editable{ //删除html标记 contents=contents.replace/]+>$/g; console.log'contens:'
目前,您的正则表达式只匹配与模式完全匹配的字符串,即整个字符串必须匹配 这是因为您在正则表达式的开头和结尾添加了^和$。这些是字符串起点和终点的锚。它断言字符串应该以您所需的模式开始,也应该以所需的模式结束,因此类似这样的内容不匹配:
Hello {{match}} Bye
只需删除^和$,它就会在整个字符串中搜索模式
regex = /\{\{\s*?\w+\s*?\}\}/g;
regex.test('{{matched}} something {{matched}}') // true
如果我明白你想说什么,那么你只需要用+@GalAbra来包装你的整个正则表达式,你能提供一个例子吗,pattern?谢谢。@GalAbra,谢谢。然而,就像在文本编辑器中一样,匹配的模式并不总是彼此相邻,它们可以由某个单词、空格、任何标点符号或新行分隔,也可以从某个单词后开始。例如,这里开始{{first_matched}}和{{{second_matched}}。非常感谢你救了我一天: