我有一个包含特殊字符的网址,例如
#1#
或#2#
http://10.10.10.10:8000/admin/taskinstance/?flt1_dag_id_equals=#1#&flt2_state_equals=#2#
我想更改其他值,例如代替#1#
我需要"hello"
和代替#2#
我需要"there"
,我尝试了一些代码,但这不起作用
var str = response.data;
var mapObj = {
#1#:dagId,
#2#:state
};
str = str.replace(/#1#|#2#/gi, function(matched){
return mapObj[matched];
});
在response.data中,我得到了我上面提到的相同的URL
我得到:
SyntaxError:第3行的令牌无效或意外。
语法有问题吗?
我对任何语法angularjs或javascript都很好。
答案 0 :(得分:1)
您必须通过用括号括起字符串来对正则表达式进行一些更改。您的对象也无效:
var str = 'http://10.10.10.10:8000/admin/taskinstance/?flt1_dag_id_equals=#1#&flt2_state_equals=#2#';
var mapObj = {
"#1#":"dagId",
"#2#":"state"
};
str = str.replace(/(#1#)|(#2#)/gi, function(matched){
return mapObj[matched];
});
console.log(str)