Javascript 如何从json键值中删除下划线
我有一个json文件,比如Javascript 如何从json键值中删除下划线,javascript,angularjs,json,Javascript,Angularjs,Json,我有一个json文件,比如 { "Asian_Cities_Countries":[ {"name":"Beijing", "country":"China" }, {"name":"Ankara", "country":"Turkey" } ], "European_Cities_Countries":[ {"name":"Paris", "country":"France" }, {"name":"Madrid", "country":"Spain" } ] } 它只是json文件的一部分
{
"Asian_Cities_Countries":[
{"name":"Beijing",
"country":"China"
},
{"name":"Ankara",
"country":"Turkey"
}
],
"European_Cities_Countries":[
{"name":"Paris",
"country":"France"
},
{"name":"Madrid",
"country":"Spain"
}
]
}
它只是json文件的一部分,实际的json相当大。
我通过angularjs获取这个json,并将它显示在我的html页面上
<div class="panel-group" id="accordion">
<div ng-repeat="key in notSorted(items) track by $index" class="panel panel-default menu-panel" ng-init="value = items[key]" style="margin-bottom:10px;">
<a data-toggle="collapse" data-parent="#accordion" id="menu-link" href="#{{key}}">
<div class="panel-heading panel-types">
<h4 class="panel-title">
{{key}}
</h4>
</div></a>
<div id="{{key}}" class="panel-collapse collapsing menu-items">
<div ng-repeat="item in value">
<div class="row">
<div class="col-sm-12 col-lg-3">
<p class="item-name">
{{item.name}}
</p>
</div>
<div class="col-sm-12 col-lg-3">
<p>{{item.country}}</p>
</div>
</div>
</div>
</div>
</div>
</div>
{{item.name}
{{item.country}
现在我想删除键值中的下划线,并用空格替换它。我该怎么做
我试过{{key.replace('''',''')}。但它只删除第一个下划线,而不是全部下划线。如果您忘记了全局修饰符,请尝试以下操作:
键。替换(/\ug,”)
用“g”替换所有发生的事件
var-app=angular.module(“app”,[]);
应用程序控制器(“ctrl”,函数($scope){
$scope.items={
“亚洲城市和国家”:
[
{“名称”:“北京”,“国家”:“中国”},
{“名称”:“安卡拉”,“国家”:“土耳其”}
],
“欧洲城市和国家”:
[
{“名称”:“巴黎”,“国家”:“法国”},
{“姓名”:“马德里”,“国家”:“西班牙”}
]
};
});
app.filter('删除下划线',[function()){
返回函数(字符串){
如果(!angular.isString(字符串)){
返回字符串;
}
返回字符串。替换(/[//]/g',);
};
}])
{{item.name}
{{item.country}
AngularJS文档特别声明角度表达式不包括正则表达式
角度表达式与JavaScript表达式
角度表达式与JavaScript表达式类似,但有以下区别:
- 不使用文字符号创建正则表达式:不能在角度表达式中创建正则表达式
{{key | removeUnderscores}}
只是个问题。为什么不在服务中处理json文件/数据?这种大量的处理(特别是字符串替换)不是要在HTML或AngularJS中的控制器中完成的。 我建议您在服务中解析json,然后将其传递给控制器。这通常是最好的做法
请看这个作为参考。谢谢您可以使用过滤器,但它不起作用。我们不能在这里使用正则表达式。我试着问你为什么不能使用正则表达式?见georgeawg.funcy给出的答案。解决方案仍然使用regexp。是的,它使用。但是regex已经在控制器中使用,而不是在范围中使用。我们不能用正则表达式scope@GopalChandak,看看我的答案。
{{key | removeUnderscores}}