如果你想通过Javascript代码在网页中呈现 字符,则在JS代码中你必须输入两个反斜杠 \,否则会报错。比如:
var a = ""; alert(a); //chrome和Firefox都会报错,IE不报错但也不会输出任何东西
而且反斜杠 本身在JavaScript 中用来向文本字符串添加特殊字符。所以说当你调用replace()方法,并且想将匹配项替换为特殊字符时就要使用反斜杠。
假设有一个字符串,其中有字母又有数字,如果你想将数字替换成 ,就要用转义符(即反斜杠 )对反斜杠 进行转义(转义符要写在被转义的特殊字符的前面)。比如:
var a = "1fge4hrj"; var b = "\";//第一个反斜杠起转义作用 alert(a.replace(/d/g,b)); //print:fgehrj var c = "\\"; alert(a.replace(/d/g,c)); //print:\fge\hrj
再来看一个例子:
<body> <textarea id="code" name="code">\</textarea> <script type="text/javascript"> function qwe() { var d = document.getElementById("code").value; var a = "1fge4hrj"; alert(a.replace(/d/g,d)); //print:\fge\hrj alert(d=="\\");//true alert(d=="\");//false } qwe(); </script> </body>
在这个例子中textarea元素中有一个字符串 “\”,通过DOM方法获取这个字符串并保存在变量 d 中,将变量 d 作为replace()方法的第二个参数,可以看到调用replace()方法的字符串中的数字被替换成了“\”,这是为什么呢?
因为变量 d 保存的是HTML代码中的字符串“\”,当它被JS代码调用的时候,JS解释器在后台自动将它进行了转义,字符串“\”在JS代码中应该被写为“\\”。我们把变量 d 分别与字符串“\”和字符串“\\”进行比较可以发现这个后台转义过程。与“\”比较返回false,与“\\”比较返回true。
参考:1、http://www.w3school.com.cn/js/js_special_characters.asp(Javascript特殊字符)。
2、http://www.w3school.com.cn/jsref/jsref_replace.asp(Javascript replace()方法)。