javascript - 通过js检测字符串中的绑定(bind)表达式

标签 javascript

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

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));

这在大多数情况下都可以正常工作,但我正在寻找更有效的方法和小想法来做到这一点。

  • 请不要使用 jquery 提出想法

最佳答案

您可以获得匹配between two characters

function call(x){
   return x.match(/{(.*)}/g);
}

这将返回包括 { 在内的匹配项和} .

您可以使用(?<={)排除它们(匹配但不捕获前面的字符)和 (?=}) (匹配但不捕获后续字符)

 return x.match(/(?<={)(.*)(?=})/g);

关于javascript - 通过js检测字符串中的绑定(bind)表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48181068/

相关文章:

javascript - React Native,无法使用异步存储正确存储和获取数据

javascript - 从 JSON 数组中提取 JSON 对象

javascript - 使用 $scope 访问 Angular 重用函数

javascript - Gatsby JS : Dynamically assign Style/Class based on current time?

javascript - 如何防止在html中的数字字段中插入大于最大值的值

javascript - 使用 onKeyUp 时禁用 javascript 中的箭头键

javascript - 从更新面板调用 javascript 不起作用

javascript - 就绪状态永远不会达到 4

javascript - 使用 jQuery .append 时,子级的父级不会得到更新

javascript - Videoshow NPM 模块与 ffmpeg