如何在JavaScript中更改或替换一部分URL字符串?

时间:2018-07-10 14:11:13

标签: javascript angularjs

我有一个包含特殊字符的网址,例如 #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都很好。

1 个答案:

答案 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)