如何在AngularJS中去除HTML标签ID属性字符串的空格?
解决AngularJS ng-repeat生成带空格ID的问题
方法一:直接在表达式中用字符串替换
直接在绑定表达式里调用replace()方法,用正则匹配所有空格并替换为空:
<div id="{{category.Name.replace(/\s+/g, '')}}Div" ng-repeat="category in CategoryList"> <h2>{{category.Name}}</h2> </div>
- 正则
/\s+/g会匹配所有空白字符(包括多个连续空格、制表符),全局替换后就能得到无空格的ID,比如原名称"Category One"会生成CategoryOneDiv。 - 如果想把空格换成合法的分隔符(比如下划线或连字符),可以改成
replace(/\s+/g, '-'),生成Category-OneDiv,同样符合HTML ID的规范。
方法二:自定义过滤器(适合多处复用场景)
如果多个地方都需要处理字符串去空格,建议自定义AngularJS过滤器,更易维护:
- 先在你的应用模块中定义过滤器:
angular.module('你的应用模块名') .filter('removeSpaces', function() { return function(input) { if (!input) return ''; return input.replace(/\s+/g, ''); }; });
- 然后在模板中使用这个过滤器:
<div id="{{category.Name | removeSpaces}}Div" ng-repeat="category in CategoryList"> <h2>{{category.Name}}</h2> </div>
内容的提问来源于stack exchange,提问作者moonbeast32
相关产品推荐
相关产品推荐

