sunshine_sean
2017-08-30 16:29
采纳率: 100%
浏览 2.8k

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

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • 迷失的骆驼 2020-07-21 15:33
    已采纳
    <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>
    
    打赏 评论
  • cloudyzhao 2017-08-31 00:42

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

    打赏 评论
  • cloudyzhao 2017-08-31 00:50

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

    打赏 评论
  • IAmObject 2017-08-31 02:05
        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)
    
        }
    
    打赏 评论
  • 很可爱的Mid 2017-08-31 08:58

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

    打赏 评论
  • mkmin 2017-09-02 09:42

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

    打赏 评论
  • mkmin 2017-09-02 09:49
    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)); }
    打赏 评论

相关推荐 更多相似问题