如何在AngularJS $httpBackend ExpectGET中使用正则表达式
发布时间:2020-12-17 07:37:02 所属栏目:安全 来源:网络整理
导读:我在一个$资源GET请求中传递一个url作为参数. Angular是url编码此参数,并且匹配$httpBackend.expectGET方法中的请求是finicky. 我看到您可以使用正则表达式来匹配预期的请求,但无法使其正常工作.我想匹配资源位置,但与任何“uri”查询字符串参数值匹配. 按Ct
我在一个$资源GET请求中传递一个url作为参数. Angular是url编码此参数,并且匹配$httpBackend.expectGET方法中的请求是finicky.
我看到您可以使用正则表达式来匹配预期的请求,但无法使其正常工作.我想匹配资源位置,但与任何“uri”查询字符串参数值匹配. 按Ctrl var resource = $resource('../api/lookup'); resource.get({ uri: "http://www.something.com" },function (data) { // do something }); 测试 // mock out the $httpBackend response $httpBackend.expectGET(/../api/lookup?uri=.*/)).respond(200,{ Response: "a response" }); // call my test method here // ensure the $httpBackend work is done $rootScope.$apply(); $httpBackend.flush(); // do assertions 业绩输出 Error: Unexpected request: GET ../api/lookup?uri=http%3A%2F%2Fwww.something.com Expected GET /../api/lookup?uri=.*/ 任何人都可以看到为什么我的正则表达式不匹配? 编辑 即使改进正则表达式,建议我无法使用’$var’注入语法来获取这个工作.我重写了测试,注入注入功能的依赖关系,并确保我的测试安排的顺序是正确的.现在它的工作就像一个魅力!
你需要摆脱正则表达式中的问号.
不用转义它,你只是将标记标记为可选项. > test = "../api/lookup?uri=http%3A%2F%2Fwww.something.com"; > test.match(/../api/lookup?uri=.*/); null > test.match(/../api/lookup?uri=.*/); ["../api/lookup?uri=http%3A%2F%2Fwww.something.com"] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |