zoukankan      html  css  js  c++  java
  • js中反斜杠的一些研究

    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>
    复制代码
  • 相关阅读:
    推介一款小工具——SwitchHosts
    Postman的使用之进行文件上传
    Postman的使用之普通的提交Post和Get请求
    Postman的安装
    Windows配置基础环境(jdk+tomcat)
    yum clean all大坑解决
    通过代理实现访问内网系统
    批量配置免密登录
    设置JRebel热部署【本地模式】
    使用多线程程序模拟实现单生产者/多消费者问题 (Linux 线程锁实践)
  • 原文地址:https://www.cnblogs.com/sunny3158/p/14978940.html
Copyright © 2011-2022 走看看