https://www.cnblogs.com/anch/p/11984060.html
js中反斜杠的一些研究
在学习正则的时候遇到一些困惑,自己研究了一下,记录如下:
在js中,打印一个由反斜杠和字母组成的字符串时,会出现三种情况
第一种,只打印字母,不打印反斜杠
包含字母:a c d e g h i j k l m o p q s w y z
第二种,什么都不打印
包含字母:b f n r t v
第三种,报错
包含字母:u x
对于第二种和第三种情况,说明这些是特殊符合,整理如下:
退格符 其unicode的编码为8
f 换页符
换行符
回车符
水平制表符
v 垂直制表符
u unicode 码,一般其后跟 4 个 16 进制数,因此,一般为 unicode-16,例如 u4f60 表示 你
x 16 进制的意思,后边跟两位,则表示单字节编码,例如 xA7 表示 §
利用正则将 / 替换为 时相对容易,但是反过来替换就会很麻烦,解决办法
1,交给后端-。-
2,在body中加一个隐藏的input,并将要转换的字符串设置成起value,这一操作可以将(编码为u0008)从底层编码级别拆分成(u0092编码)和b(编码u0098)。从而可以实现匹配和替换操作。
3,的unicode编码为u0008,可以将u0008作为正则表达式进行匹配和替换
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>test</title> 5 <script> 6 var w = function(str=""){document.write(str+"<br>")}; 7 str="acdefg"; 8 w("str.charCodeAt(1): "+str.charCodeAt(1)); 9 w(String.fromCharCode(8)); 10 str1 = str.replace(/\/, ''); 11 str1 = str1.replace(/u0008/,'b'); 12 w("str1: "+str1); 13 </script> 14 </head> 15 <body> 16 <input type="text" name="" value = "acdefg" style="display:none"> 17 <script> 18 str = document.getElementsByTagName('input')[0].value; 19 w("str.charCodeAt(1): "+str.charCodeAt(1)); 20 w(String.fromCharCode(92)); 21 w("str: "+str); 22 str1 =str.replace(/\/g, ""); 23 w("str1: "+str1); 24 </script> 25 </body> 26 </html>