0

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\';

错误可能来自用反斜杠连接的引号,如下所示:\''\'

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

4

1 回答 1

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 应用的语法突出显示中看到前两个示例之间的区别。

于 2012-11-19T08:14:27.170 回答