【发布时间】:2017-11-24 05:26:34
【问题描述】:
我有一些文本试图用 Angularjs 中的正则表达式替换其中的一部分。
文本将采用以下格式:
Name: Jane
Age: 66
Address: 31 Test Street
我想用 'REDACTED' 替换 Age: 之后的部分(所以 66 不会出现),所以我创建了这个过滤器,在我看来它应该可以工作:
angular.module('person')
.controller(controllerId, personControl)
.filter('ageFilter', function () {
return function (text) {
if (text)
return text.replace(/[\n\r].*Age: \s*([^\n\r]*)/, 'REDACTED');
return '';
}
});
html的相关部分:
<dd ng-bind-html="vm.model.PERSON_INFO | ageFilter"></dd>
过滤器被命中,但文本永远不会被替换。当我在 Regex 测试网站上测试时,我的 regex 有效,所以我认为我可能做错了我看不到的其他事情。
【问题讨论】:
-
创建一个重现问题的 plunker 演示
-
只是一个指针,不应该把返回值赋值给view吗?
-
我认为你的文字有问题,里面会有\n吗?
-
不应该
text.replace(/^(Age:[\t ]*).*/m, '$1REDACTED');就够了吗?见this regex demo。顺便说一句,your regex does not work well.
标签: javascript angularjs regex