zoukankan      html  css  js  c++  java
  • JS各种情况处理

    1.获取URL及其参数

    实例:URL:file:///C:/Program%20Files/nodejs/test/jumbTarget.html?a=1&&b=2&&c=3

      //假设返回的对象类型为Array或单个字符串
            function getUrlParams() {
                var str = location.search;
    
                if (str.indexOf("?") != -1) { //判断参数是否存在
                    var doneStr = str.substr(1);
    
                    if (doneStr.indexOf("&&") != -1) {
                        var arr1 = doneStr.split("&&");
                        var arr2 = arr1.map(function (item) {
                            return item.split("=")[1];
                        })
                        return arr2;
                    } 
    
                    else {
                        return doneStr.split("=");
                    }
                }
                
                else {
                    console.error("当前URL中无参数存在!");
                }
            }  

    返回的结果为["1","2","3"],当然也可以进行其他类型的返回,例如object等;

    方法二:正则表达式

     //假设返回的对象类型为Array(这个例子不对单个参数做判断了)
            function getUrlParams() {
                var str = location.search;
    
                if (str.indexOf("?") != -1) { //判断参数是否存在
                    var doneStr = str.substr(1);
    
                    var reg  = /=w+(?=&&|)/g;
                    var arr = doneStr.match(reg);
                    return arr.map(function(item) {
                        return item.substr(1);
                    })
                }
                
                else {
                    console.error("当前URL中无参数存在!");
                }
            }  
            
            var paramsArr = getUrlParams();
            console.log(paramsArr);

     在JS比较尴尬的是,JS并不支持负向零宽断言,所以无法直接使用?<=来匹配=,因此多了map函数的一步。

    注:JS不支持正则的负向零宽断言,只支持正向零宽断言。

      

  • 相关阅读:
    基本数据类型(二)
    jquery 基础
    CSS 基础
    Hyperledger Fabric Ordering Service过程
    Hyperledger Fabric Transaction Proposal过程
    Hyperledger Chaincode启动过程
    Hyperledger Fabric1.0 整体结构
    golang学习
    数字签名详解
    设置MongoDB课程环境
  • 原文地址:https://www.cnblogs.com/Yoriluo/p/8817763.html
Copyright © 2011-2022 走看看