我有一个字符串,可能包含任何 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/