Jquery 每个HTML div都需要一个
HTML: 我试图解析出Jquery 每个HTML div都需要一个,jquery,match,each,Jquery,Match,Each,HTML: 我试图解析出{大括号}中包装的所有项目 我希望看到以下结果: ['{name}','{demo}','{yes}','{no}'] 但当我运行代码时,我得到的是: ['{name}','{demo}value=“{yes}','{demo}value=“{no}]”/{(.*)/gi $.each($('div'), function (k, v) { var s = $(v).html(); console.log(s.match(/{(.*)}/gi)); });
{
大括号}
中包装的所有项目
我希望看到以下结果:
['{name}','{demo}','{yes}','{no}']
但当我运行代码时,我得到的是:
['{name}','{demo}value=“{yes}','{demo}value=“{no}]”
/{(.*)/gi
$.each($('div'), function (k, v) {
var s = $(v).html();
console.log(s.match(/{(.*)}/gi));
});
在正则表达式中,*
量词默认为“贪婪”。这意味着它将尽可能多地捕获。正因为如此,你得到了比你预期的更广泛的比赛
一种解决方案是通过添加一个?
,使您的*
操作符“懒惰”:
/{(.*?}/gi
$.each($('div'), function (k, v) {
var s = $(v).html();
console.log(s.match(/{(.*)}/gi));
});
更好的解决方案是使用匹配所有非}
字符的字符类,而不是将任何字符与
匹配:
/{([^}]*)}/gi
{name}
$.each($('div'), function (k, v) {
var s = $(v).html();
console.log(s.match(/{(.*)}/gi));
});
var t=[“{name}”:“name”,“{yes}”:是,“{no}”:“不,我没有”]
$。每个($('div'),函数(k,v){
var s=$(v.html();
var d=s.match(/{([^}]*)}/gi);
$(v).html(t[d]);
});
值不变请添加更多细节!!!代码结果
{name}
{demo}value=“{yes}
{demo}value=“{no}
但需要结果{name}
{demo}
{yes}
{no}
搜索并更改值和html以获取所需$(此).html是正确的,但值不改变。我如何联系您?@Locked请发送运营商pidgeon。但是,老实说,我不知道你在问什么。我们需要专业的“f-e”