javascript .replace()不会替换每个出现的内容

时间:2016-04-19 09:49:17

标签: javascript json regex replace

检索时我得到以下内容。

var data = {"distinct_id"%3A "2222222222222"%2C"%24initial_referrer"%3A "%24direct"%2C"%24initial_referring_domain"%3A "%24direct"}

如果我检查typeof data,我会收回一个字符串。

然而,当我试图通过替换"%3A"用":"等等,上述对象不会替换所有出现但仅替换第一个出现。

data = data.replace(/\%3A/g,":")仅替换第一个"%3A"。

如何使用distinct_id, $initial_referrer as well as we $initial_referring_domain ?

创建一个合适的对象

1 个答案:

答案 0 :(得分:1)

测试您的代码证明您的replace用法确实没问题,它确实取代了%3A的所有出现次数:



var data = '{"distinct_id"%3A "2222222222222"%2C"%24initial_referrer"%3A "%24direct"%2C"%24initial_referring_domain"%3A "%24direct"}';

data = data.replace(/\%3A/g, ":");

alert(data);




然而,正则表达式在这里不正确,因为您还有其他编码实体。请改用decodeURIComponent功能:



var data = '{"distinct_id"%3A "2222222222222"%2C"%24initial_referrer"%3A "%24direct"%2C"%24initial_referring_domain"%3A "%24direct"}';

data = decodeURIComponent(data);

alert(data);