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

标签 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: 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/

相关文章:

javascript - Angular - ngChange 在 <select> 的 ngModel 之前触发

javascript - 溢出时将内容移动到另一个 div

javascript - 使用当前日期自动填充文本框

javascript - 标记它提交ID而不是值或标签

javascript - 如何像这个网站一样基于滚动创建动画?

angularjs - Angular 更新和清除工厂变量

JavaScript - 减慢循环速度

javascript - AngularJS:三元运算符条件检查中的函数调用

angularjs - Jasmine 注入(inject)不起作用

项目上线时 Javascript 未定义