JavaScript中的“\”字符有什么问题?

时间:2012-11-19 08:13:36

标签: javascript backslash

JavaScript中的“\”字符有什么问题?

此脚本不起作用:

var theText='<he:/ll/*o?|>'
function clean(txt) {
var chr = [ '\', '/', ':', '*', '?', '<', '>', '|' ];
for(i=0;i<=8;i++){txt=txt.split(chr[i]).join("")}
return txt;}
alert(clean(theText));

当我从数组中删除“反斜杠”时它会起作用:

var theText='<he:/ll/*o?|>'
function clean(txt) {
var chr = [ '/', ':', '*', '?', '<', '>', '|' ];
for(i=0;i<=7;i++){txt=txt.split(chr[i]).join("")}
return txt;}
alert(clean(theText));

当我写var txt='text\';

时,它不起作用

错误可能来自加上反斜杠的引号,例如:\''\'

但我也需要/字符,我该怎么办?

1 个答案:

答案 0 :(得分:5)

反斜杠转义了收盘价。你需要逃避反斜杠本身:

var chr = [ '\\', '/', ':', '*', '?', '<', '>', '|' ];
//           ^--- Add another backslash to escape the original one

例如,如果您想在数组中添加单引号字符,则此行为可能会有用:

var chr = [ ''', '/', ':', '*', '?', '<', '>', '|' ];
//           ^--- This quote closes the first and the 3rd will cause an error

通过转义单引号,它被视为“正常”字符,不会关闭字符串:

var chr = [ '\'', '/', ':', '*', '?', '<', '>', '|' ];
//           ^--- Escaped quote, no problem

您应该能够从Stack Overflow应用的语法高亮显示中看到前两个示例之间的差异。