[js]如何用正则选出多个匹配的元素?

现在有一行字符串:

"{tagName=input, type=radio, labelName=选项11},{tagName=input, type=radio, labelName=选项31}"

这个字符串里面有两个长得像对象的子字符串。
请问如何用正则将这两个字符串选出来?
自己尝试了很多种方式,总是匹配到了最长的那一段。
在这里求教各位大牛如何选出来相应的字符串:
期望选出两个字符串是这样的:

{tagName=input, type=radio, labelName=选项11}
{tagName=input, type=radio, labelName=选项31}
阅读 8.9k
6 个回答

(\{.*?\})最外层小括号只是用于正则分组,便于提取出来而已。如果没有提取的需求,那么最外层小括号可以不要

"{tagName=input, type=radio, labelName=选项11},{tagName=input, type=radio, labelName=选项31}".match(/{.+?}/g)
\{\w+\s*=\s*[^}]+(\s*,\s*\w+\s*=\s*[^}]+)*\}
var regx = /\{[^\{\}]+?\}/g; //正则
var value = '{tagName=input, type=radio, labelName=选项11},{tagName=input, type=radio, labelName=选项31}';

console.log( value.match(regx) ); 
var str='{tagName=input, type=radio, labelName=选项11},{tagName=input, type=radio, labelName=选项31}';
str.split(/,(?={)/);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题