Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从json键值中删除下划线_Javascript_Angularjs_Json - Fatal编程技术网

Javascript 如何从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文件的一部分

我有一个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表达式类似,但有以下区别:

  • 不使用文字符号创建正则表达式:不能在角度表达式中创建正则表达式
--

相反,请使用用户推荐的自定义过滤器

和html格式

{{key | removeUnderscores}}

只是个问题。为什么不在服务中处理json文件/数据?这种大量的处理(特别是字符串替换)不是要在HTML或AngularJS中的控制器中完成的。 我建议您在服务中解析json,然后将其传递给控制器。这通常是最好的做法


请看这个作为参考。谢谢

您可以使用过滤器,但它不起作用。我们不能在这里使用正则表达式。我试着问你为什么不能使用正则表达式?见georgeawg.funcy给出的答案。解决方案仍然使用regexp。是的,它使用。但是regex已经在控制器中使用,而不是在范围中使用。我们不能用正则表达式scope@GopalChandak,看看我的答案。
{{key | removeUnderscores}}