zoukankan      html  css  js  c++  java
  • 前台js获取url传递参数(后台Request.QueryString接收)

    方法

    封装

    function GetQueryString(name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
        var r = window.location.search.substr(1).match(reg);
        if (r != null) return decodeURIComponent(r[2]);
        return null;
    }

    调用

    alert(GetQueryString('UserName'));

    说明

    建议使用encodeURIComponent、encodeURI,不建议使用escape

    关于三中编码函数的区别,原博文 https://blog.csdn.net/letterTiger/article/details/79623991

    关于escape,不建议使用的原因,原博文 https://blog.csdn.net/unopenmycode/article/details/78835545

    摘抄:

    其对编码函数进行了修改,且对原因也进行了说明。
    escape()不对“+”编码。但是我们知道,网页在提交表单的时候,如果有空格,则会被转化为+字符。
    服务器处理数据的时候,会把+号处理成空格。所以,使用的时候要小心。
    encodeURIComponent()
    最后一个Javascript编码函数是encodeURIComponent()。
    与encodeURI()的区别是,它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。
    因此,“; / ? : @ & = + $ , #”,这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码。
    至于具体的编码方法,两者是一样。
    encodeURIComponent()相比encodeURI()要更加彻底。
    为什么优先使用encodeURIComponent而不是escape?
    escape方法并不编码字符+。而我们知道,在用户提交的表单字段中,如果有空格,则会被转化为+字符,而服务器解析的时候则会认为+号代表空格。
    由于这个缺陷,escape方法并不能正确地处理所有的非ASCII字符,你应当尽量避免使用escape方法,
    取而代之,你最好选择 encodeURIComponent()方法。

  • 相关阅读:
    Vue Highcharts 动态添加点
    JS Data(日期)对象
    VUE axios使用
    VUE 创建新项目
    Arduino ESP32 WiFi功能
    Arduino ESP8266 ESP8266mDNS.h
    Arduino ESP8266 ESP8266WebServer.h
    博客园定制自己的皮肤
    Arduino ESP32 BLE
    hadoop的伪分布安装(低版本)
  • 原文地址:https://www.cnblogs.com/masonblog/p/9773876.html
Copyright © 2011-2022 走看看