将'\'替换为字符串中的' - '

时间:2013-04-17 12:29:05

标签: javascript regex string replace html-escape-characters

我已经看过之前提出的所有问题,但它并没有帮助我。我有一个包含反斜杠的字符串,我想用' - '

替换反斜杠
var s="adbc\sjhf\fkjfh\af";
s = s.replace(/\\/g,'-');
alert(s);

我认为这是正确的方法,当然我错了,因为在警报中显示adbcsjhffkjfhaf但我需要它像adbc-sjhf-fkjfh-af

我在这里做了什么错误,是什么原因以及如何实现这个...... ??

Working JS Fiddle

4 个答案:

答案 0 :(得分:11)

您的s最初是adbcsjhffkjfhaf。你的意思是

var s="adbc\\sjhf\\fkjfh\\af";

答案 1 :(得分:3)

您需要将输入字符串中的反斜杠加倍:

var s="adbc\\sjhf\\fkjfh\\af";

在字符串文字中加上带有'\'的字符为该字符赋予特殊含义(例如'\t'表示制表符)。如果您想在字符串中实际包含'\',则必须使用第二个反斜杠转义它:'\\'

答案 2 :(得分:2)

Javascript忽略了字符串中\ \s \f中的\a。在分配之后执行console.log(s),您将理解。

您需要使用\转义\\。喜欢:"adbc\\sjhf\\fkjfh\\af"

答案 3 :(得分:1)

字符串不包含反斜杠,它包含\ a,\ s和\ f(换页符的转义序列)。

如果您将字符串更改为adbc\\sjhf\\fkjfh\\af

var s="adbc\\sjhf\\fkjfh\\af";
s = s.replace(/\\/g,'-');
alert(s);

您可以将其替换为-