我有一个网址,其中包含特殊字符,例如
#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: Invalid or unexpected token for line no 3.
语法有问题吗?
我对任何语法 angularjs 或 javascript 都很满意。
最佳答案
您必须通过用括号将字符串括起来来稍微更改正则表达式。您的对象也无效:
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)
关于javascript - 如何更改或替换 JavaScript 中 URL 字符串的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51267472/