zoukankan      html  css  js  c++  java
  • URL传参到servlet含特殊字符——#号无法传递

    特殊字符有:[~’!@#$%^&*()-+_=:]

    于是,想到办法先转换为16进制数,然后再传递,以下是javascript的转换方式:

    //替换特殊符号
        function replaceScript(s) 
        { 
            var aStr = new Array(); //定义一个数组
            aStr = s.split("");     //将传入的字符串切割成字符串数组
            var pattern = new RegExp("[~'!@#$%^&*()-+_=:]","g");    //将要匹配的特殊字符
            var result = "";    //定义一个空字符串,作为返回值
            for (var i = 0; i < s.length; i++) { 
                if(pattern.test(s[i]))  //RegExp.test()检索字符串中指定的值。返回 true 或 false。
                {
                    s[i]=s[i].toString(16);     //将特殊字符转换成16进制数
                };
                result+=s[i];
            } 
            return result; 
        }
    

    另外,值得注意的是:对于#号并不起作用。

    原因是在https://blog.csdn.net/u014426752/article/details/41733967看到的。

  • 相关阅读:
    HDU 1429
    HDU 1622
    HDU 3335
    HDU 4160
    HDU 1350
    HDU 5086
    HDU 1300
    HDU 3047
    HDU 3038
    HDU 5100
  • 原文地址:https://www.cnblogs.com/famine/p/9124686.html
Copyright © 2011-2022 走看看