如何在angularJs表达式中使用该正则表达式?
这里有一个带空格的字符串,我想将空格替换为一个破折号“-”如何在angularJs表达式中使用该正则表达式?,angularjs,regex,Angularjs,Regex,这里有一个带空格的字符串,我想将空格替换为一个破折号“-” var card = "A World Elite Warrior"; console.log("card = " + card.toLowerCase().replace(/ /g,'-')); 输出是一个-world-elite-warrior,但我只想在html模板中将其用作angularjs表达式,如下所示: <img ng-src="images/cards/{{card.toLowerCase().replace(
var card = "A World Elite Warrior";
console.log("card = " + card.toLowerCase().replace(/ /g,'-'));
输出是一个-world-elite-warrior,但我只想在html模板中将其用作angularjs表达式,如下所示:
<img ng-src="images/cards/{{card.toLowerCase().replace(/ /g,'-')}}.png"
并且无法工作,错误消息为:
错误:[$parse:syntax]语法错误:标记“/”不是主标记
表达式的第61列中的表达式
AngularJS在视图中不支持正则表达式。为了解决这个问题,您可以编写一个简单的过滤器来应用您的正则表达式替换。下面是一个例子,说明在您的案例中您可能如何做到这一点
angular.module('app',[])
.controller('ctrl',函数($scope){
$scope.card=“世界精英战士”;
log(“card=“+$scope.card.toLowerCase().replace(//g,'-'));
})
.filter('破折号',函数(){
返回函数(输入){
输入=输入| |“”;
返回input.toLowerCase().replace(//g,'-');
}
});代码>
{{卡片|破折号}
另一种方法是创建执行正则表达式的$scope函数。然后,您只需从视图中调用函数:
$scope.cardChange = function() {
return $scope.card.toLowerCase().replace(/ /g,'-');
};
我按照你的建议做了。很好用,谢谢。
<img ng-src="images/cards/{{cardChange()}}.png"