判断url中是否有某个参数值,如果没有的情况下加上,如果有的话修改 - js - 方帮信


大厂面试直通卡 本周拉勾免费课:《深入浅出搞定React》 7月6号下线 【腾讯云】2021新春采购节,爆款产品特惠,助力企业上云
当前位置: 首页 >  > 技术 > 软件开发 > js

判断url中是否有某个参数值,如果没有的情况下加上,如果有的话修改

2021/5/14 22:09:23 浏览

判断url中是否有某个参数值,如果没有的情况下加上,如果有的话修改javascript修改参数的参数值function changeURLArg(url, arg, arg_val) { var pattern = arg + =([^&]*); var replaceText = arg + = + arg_val; if (url.match(pattern)) { //如果已经有相同…

站长送干货喽:

1.拉勾教育7天VIP

2.大场面试题第一季-阿里篇视频讲解

站长的微信:changyandoublog

判断url中是否有某个参数值,如果没有的情况下加上,如果有的话修改

javascript修改参数的参数值


function changeURLArg(url, arg, arg_val) {
   var pattern = arg + '=([^&]*)';
   var replaceText = arg + '=' + arg_val;
if (url.match(pattern)) { //如果已经有相同的参数,要进行修改
       var tmp = '/(' + arg + '=)([^&]*)/gi'; //匹配“参数=值”
       tmp = url.replace(eval(tmp), replaceText);//修改参数值
    return tmp;
  } else {
       if (url.match('[\?]')) {    //判断是否有参数
        return url + '&' + replaceText; //如果有就用&追加
       } else {
        return url + '?' + replaceText;//如果没有就添加?,并且追加参数
    }
   }
return url + '\n' + arg + '\n' + arg_val;
}


其中涉及到几个点:

  • match,match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

  • =([^&]*)

    • 圆括号:表示一个子表达式的开始和结束位置

    • 中括号:表示一个字符簇,要建立一个字符簇,就把所有的字符放在一个中括号中。但是它只表示一个字符,可以用连字符表示一个字符的范围,比如[0-9]、[a-z]

    • ^:匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^,这里的目的实际上就是表示,等号后,不包含&符号的所有匹配项,就是等号后,下一个&符号之前的所有结果,也就是 =.......... 的结果

    • *:匹配前面的子表达式零次或多次

    • /gi:g->global,查找所有匹配项,i->ignore,不区分大小写,这个是指正则表达式的匹配策略



来源:方帮信(微信:changyandoublog,邮箱:changyandou@126.com),欢迎分享!