正则表达式: 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“,更多......}
为什么?请帮帮我?
答案 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,"");
}
\\意思是\ ...