js 正则表达式获取${}$中的值

var str = "${DataField}$ + ${Operation}$ + ${Data}$";
如何得到 DataField Operation Data

<script>
   var str = "${DataField}$ + ${Operation}$ + ${Data}$";
    // 正则一
   var reg2 = /[A-Z]\w+(?=}\$)/g
   // 正则二
   var reg3 = /\b(?=\w)\w+(?=}\$)/g
    console.log(str.match(reg2).join(' '))
    console.log(str.match(reg3).join(' '))
    // 输出:DataField Operation Data
 </script>

/\${[^\+]+}/

var str = "${DataField}$ + ${Operation}$ + ${Data}$";
var g = /\${[^+]+}/;
var group = str.match(g);

    var str1 = "${DataField}$ + ${Operation}$ + ${Data}$";
    var strArr=str1.split("+");

    var str ="";
    for(var i=0;i<strArr.length;i++){

        str=strArr[i].replace("${", "");
        str=str.replace("}$", "");
        alert(str)

    }

如楼上所说,使用replace函数,
将$,{,}替换成空字符,将+替换成空格

正则的方式已经有很多了,我就说个非正则的吧,你可以使用split去根据+号切割,然后获取到三个数组。接下来每个数组去掉第一第二个字符串还有
最后那个字符串,然后就可以了

var str1 = "${DataField}$+${Operation}$+${Data}$"; console.log(str1.split("+")); var arr = str1.split("+"); for(var i = 0; i < arr.length; i++) { console.log(arr[i].slice(2, arr[i].length - 2)); }