2011-08-05 167 views
0

正则表达式: var s = document.getElementById(“username”).value;如果s ==“\ \ \ \”; var result = s.replace(/ \/g,“”)会出错吗?为什么那个萤火虫错误?JavaScript替换字符串

希望结果等于== “”,但萤火虫是输出:

的SyntaxError {源= “与(_FirebugCommandLine){(” \ \“)代替(/(\)/克。 “”); \ n};“,message =”未终止的字符串文字“,fileName =”resource://firebug_rjs/console/commandLineExposed.js“,更多......}

为什么?请帮帮我?

回答

2

\ \是一个特殊字符。 See Special Characters in Javascript

你必须逃脱\

("\\ \\").replace(/(\\)/g,""); 

应该工作。

顺便说一句,你想在你的regEx比赛中做什么?

+2

@kevin彭,你想达到什么目的? – Nivas

0

你需要转义反斜线:

t = ("\\\\").replace(/(\\)/g,""); 
0

因为你没有逃过字符串中的反斜杠。

之前结束的报价意味着该报价是字符串的一部分,而不是,所以串并没有结束,直到下一次报价,让您的代码包含反斜杠:

  • (
  • 字符串与内容").replace(/(\\)/g,
  • 与内容);是缺少结束引号

逃离巴串ckslashes他们加倍:

("\\ \\").replace(/(\\)/g,""); 
0

\符号是正则表达式...

\n = newline; 
\t = tabspace; 
\\ = "\" symbol; 

所以,如果你写//它会标记为已评论.... 如果你写\/ = "/"字符串。 。 但现在你写“...替换(/ \/gi)” ... \/=/将标记为字符串,所以下一个字不能关闭..你必须

var s = document.getElementById("username").value; 
if(s.search("\ \ \ \")>=0){ 
    s.replace(/\\/g,""); 
} 

\\意思\ ...