采取我有以下代码:
myApp.filter('parseUrlFilter', function() {
var urlPattern = /^E\d{5}-\d{2}$/;
return function (text, target) {
return text.replace(urlPattern, '<a target="' + target + '" href="http://somepage.com?number=$&">$&</a>') + " | ";
};
});
我仍然试图理解这个代码完全工作,但它并没有将文本转换到URL。
像E12345-01
不会成为somepage.com?number=E12345-01
我想我失去了一些东西对正则表达式是如何在这里工作。任何帮助将不胜感激。
编辑:添加plnkr与machinehead115
这正是我一直在寻找的。两个问题: 1)sce如何工作?我只是无法弄清楚为什么在这里需要$ sce。 2)这在我的代码现在不起作用。给出一个'parseUrlFilterFilterProvider'错误。我维护一个app.js,在其中编写公共服务/指令和一个controller.js。 I D.I.'这在我的控制器中,但这给了另一个类似的错误。任何想法我如何处理这个? –
做了一个样本[plnk](http://plnkr.co/edit/uhq2d2LQQ3LAqX2fCQrl?p=preview) –
在这里,我更新了[plnk](http://plnkr.co/edit/GuKyCrnERzgMUX2vqGJ8?p=preview)为你。您不需要将过滤器包装在'document.ready()'中。看看我上面的答案中的$ sce链接,但基本信息是 _SCE协助编写代码的方式是(a)默认安全,(b)审核安全漏洞,如XSS,点击劫持,等等,很容易。 – machinehead115