Javascript 用js检测字符串中的绑定表达式

Javascript 用js检测字符串中的绑定表达式,javascript,Javascript,我有一个字符串,它可能包含任何html元素、句子、数字等,存储在变量x中,现在我想找到绑定表达式{},它的内部元素非常有效。我有一个程序,大部分工作正常,但有时失败,所以我正在寻找非常有效的方法来做到这一点 function call(x){ var p = 0, d = [], g = x.replace(/\s/g, ''); for(var i = p ; i< g.length; i++){ x = x.substr(p,

我有一个字符串,它可能包含任何html元素、句子、数字等,存储在变量x中,现在我想找到绑定表达式{},它的内部元素非常有效。我有一个程序,大部分工作正常,但有时失败,所以我正在寻找非常有效的方法来做到这一点

function call(x){
   var  p = 0,
        d = [],
        g = x.replace(/\s/g, '');
    for(var i = p ; i< g.length; i++){
      x = x.substr(p,x.length - p);
      f1 = x.indexOf('}*');
      f2 = x.indexOf('*{');
      if(f1 == -1 || f2 == -1){
        break;
      }
      c = x.substr(f2+1,f1-f2);
      d.push(c.replace(/}|{/g,''))
      var p = f2+(c.length+2);
    }
   return d;
 }

var x = `<div> 
          <span class="*{race}*">
            *{name}*
          </span>
      </div>`;

    console.log(call(x));
函数调用(x){
var p=0,
d=[],
g=x。替换(/\s/g,”);
对于(var i=p;i
这在大多数情况下都很好,但我正在寻找更有效的方法和小想法来做到这一点

  • 请不要建议使用jquery
您可以获得匹配项

这将返回匹配项,包括
{
}

您可以使用
(?大多数情况下工作正常,但有时会失败)排除它们。如果您可以共享失败和成功的测试用例,则可以/更容易地修改/扩展现有解决方案本身。
function call(x){
   return x.match(/{(.*)}/g);
}
 return x.match(/(?<={)(.*)(?=})/g);