美文网首页
JS--解析字符串获取需要的数据

JS--解析字符串获取需要的数据

作者: 甘道夫老矣 | 来源:发表于2019-12-06 11:55 被阅读0次

    1.js获取地址参数

    Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问。

    属性 描述
    hash 设置或返回从井号 (#) 开始的 URL(锚)。
    host 设置或返回主机名和当前 URL 的端口号。
    hostname 设置或返回当前 URL 的主机名。
    href 设置或返回完整的 URL。
    pathname 设置或返回当前 URL 的路径部分。
    port 设置或返回当前 URL 的端口号。
    protocol 设置或返回当前 URL 的协议。
    search 设置或返回从问号 (?) 开始的 URL(查询部分)。

    注意:search和hash的区别,、
    如果URL中“?”之前有一个“#”比如:“http://localhost:8888/index.html#/xxx?type=35&id=5”,
    那么使用window.location.search得到的就是空(“”)。
    因为“?type=35&id=5”是属于“#/version?type=35&id=5”这个串字符的,
    也就是说查询字符串search只能在取到“?”后面和“#”之前这个区间的内容,如果“#”之前没有“?”,search取值为空。
    需要正则验证
    正则验证大全地址(https://www.cnblogs.com/hai-ping/articles/2997538.html

    function getUrlSearch(name) {
            if(!name){
                return null
            }
            // 查询参数:先通过search取值,如果取不到就通过hash来取
            var after = window.location.search;
            //var after="http://localhost:8888/index.html#/ooxx?type=35&id=5"
            after =after.substring(after.lastIndexOf('/') + 1)|| window.location.hash.split('?')[1];
            if (!after){
                return null;
            } 
            //看这个参数有没有在地址中有没有
            if (after.indexOf(name) === -1) {
                return null;
            }
            var reg = new RegExp("(^||&)"+ name + "=([^&]*)(&|$)","i");
            // 当地址栏参数存在中文时,需要解码,不然会乱码
            var r = decodeURI(after).match(reg);
            if(!r){
                return null;
            }
           return r[2];
    }
        console.log(getUrlSearch("type"))//35
    

    2.js获取字符串中的中文

    if (aiMena !== null && aiMena !== "") {
        let reg = /[\u4e00-\u9fa5]/g;
        return aiMena.match(reg).join("");
    } else {
        return  aiMena;
    }
    

    相关文章

      网友评论

          本文标题:JS--解析字符串获取需要的数据

          本文链接:https://www.haomeiwen.com/subject/zmfmsctx.html