JavaScript替换字符串

时间:2011-08-05 05:55:21

标签: javascript regex

正则表达式: var s = document.getElementById(“username”)。value;如果s ==“\ \ \ \”; var result = s.replace(/ \ / g,“”)会出错吗?为什么那个firebug错误?

希望结果是equals ==“”,但输出firebug:

SyntaxError {source =“with(_FirebugCommandLine){(”\\“)。replace(/(\)/ g,”“); \ n};”,message =“unterminated string literal”,fileName =“资源://firebug_rjs/console/commandLineExposed.js“,更多......}

为什么?请帮帮我?

4 个答案:

答案 0 :(得分:2)

\ \是一个特殊的角色。 See Special Characters in Javascript

你必须逃离\

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

应该工作。

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

答案 1 :(得分:0)

你需要逃避反斜杠:

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

答案 2 :(得分:0)

因为你没有转义字符串中的反斜杠。

结束引号之前的反斜杠意味着引号是字符串的一部分,因此字符串在下一个引号之前不会结束,因此您的代码包含:

  • (
  • 内容为").replace(/(\\)/g,
  • 的字符串
  • 内容为);且缺少结尾引用的字符串

通过加倍反击来逃避反斜杠:

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

答案 3 :(得分:0)

\ symbol是正则表达式...

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

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

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

\\意思是\ ...