Javascript替换为全球不工作的Caret符号

时间:2017-03-03 18:00:15

标签: javascript

我有以下代码替换

 var temp =  "^hall^,^restaurant^";
 temp.replace(/^/g, '');
 console.log(temp);

这不会将^符号替换为字符串。这怎么可能不起作用?

2 个答案:

答案 0 :(得分:1)

 temp = temp.replace(/\^/g, '');

一旦你逃脱了插入符号,它就会被取代。

https://jsfiddle.net/ym7tt1L8/

请注意,只写temp.replace(/\^/g, '');不会更新您的实际字符串。这就是你必须写的原因

 temp = temp.replace(/\^/g, '');

答案 1 :(得分:1)

在RegEx中,插入符号被识别为特殊字符。它表示字符串的开头。

此外,替换返回新值,它不会执行适当的操作,您需要创建一个新变量。

对于您的情况,您必须执行以下操作之一:

var temp =  "^hall^,^restaurant^";
var newString = temp.replace(/\^/g, ''); // Escape the caret

或者直接替换角色而不使用RegEx:

var temp =  "^hall^,^restaurant^";
while (temp.indexOf('^') >= 0) {
    temp = temp.replace('^', '');
}

替代版本:

var temp =  "^hall^,^restaurant^";
var newString = temp.split('^').join('');