Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式在文本编辑器中只匹配一次?_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式在文本编辑器中只匹配一次?

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:'

使用文本编辑器,我尝试匹配以{{,可选空格,任意字符,可选空格,以}结尾的每个字符

因此,我导出了如下正则表达式模式:

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'; } } } }; 夏季笔记测验


目前,您的正则表达式只匹配与模式完全匹配的字符串,即整个字符串必须匹配

这是因为您在正则表达式的开头和结尾添加了^和$。这些是字符串起点和终点的锚。它断言字符串应该以您所需的模式开始,也应该以所需的模式结束,因此类似这样的内容不匹配:

Hello {{match}} Bye
只需删除^和$,它就会在整个字符串中搜索模式

regex = /\{\{\s*?\w+\s*?\}\}/g;
regex.test('{{matched}} something {{matched}}') // true

如果我明白你想说什么,那么你只需要用+@GalAbra来包装你的整个正则表达式,你能提供一个例子吗,pattern?谢谢。@GalAbra,谢谢。然而,就像在文本编辑器中一样,匹配的模式并不总是彼此相邻,它们可以由某个单词、空格、任何标点符号或新行分隔,也可以从某个单词后开始。例如,这里开始{{first_matched}}和{{{second_matched}}。非常感谢你救了我一天: