>웹 프론트엔드 >JS 튜토리얼 >jquery를 사용하여 URL 매개변수와 URL 및 매개변수를 얻는 방법

jquery를 사용하여 URL 매개변수와 URL 및 매개변수를 얻는 방법

不言
不言원래의
2018-07-02 14:36:595178검색

이 글에서는 jquery를 사용하여 url 매개변수와 url 매개변수를 얻는 방법과 url에 매개변수를 추가하는 방법을 소개합니다. 이 글에서는 jquery를 사용하여 url 매개변수를 얻는 다양한 방법을 소개합니다. 관심 있는 친구들은 함께 배워보세요

jquery를 사용해 보세요. URL을 얻기 위해 jquery를 사용하여 URL 매개변수를 얻는 것은 우리가 자주 사용하는 작업입니다. 다음은 이를 텍스트 설명 및 코드 분석 형식으로 분석한 것입니다.

1. jquery를 사용하면 매우 간단합니다. 코드는 다음과 같습니다.

window.location.href;

실제로는 javascript의 기본 window 개체만 사용하며 jquery에 대한 지식은 사용하지 않습니다.

2.jquery로 URL 매개변수를 얻는 것은 더 복잡하고 정규식을 사용해야 하므로 자바스크립트 정규식을 잘 배우는 것이 중요합니다

먼저, 특정 매개변수를 jquery에서 얻는 방법을 살펴보겠습니다. :

  //获取url中的参数
  function getUrlParam(name) {
   var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
   var r = window.location.search.substr(1).match(reg); //匹配目标参数
   if (r != null) return unescape(r[2]); return null; //返回参数值
  }

이 함수를 통해 URL에 매개변수 이름을 전달하면 매개변수 값을 얻을 수 있습니다. 예를 들어 URL은

http://localhost:33064/WebForm2.aspx?reurl입니다. =WebForm1.aspx

reurl을 얻으려고 합니다. 값은 다음과 같이 작성할 수 있습니다.

var xx = getUrlParam('reurl');

Javascript에서 url 매개변수를 얻는 방법을 이해합니다. 이 방법을 사용하면 jquery를 통해 url 매개변수를 얻는 방법을 확장할 수 있습니다. . 다음 코드는 jquery

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

에 대한 getUrlParam() 메서드를 확장합니다. jquery에 대해 이 메서드를 확장한 후 다음 메서드를 통해 특정 매개변수의 값을 가져올 수 있습니다.

var xx = $.getUrlParam('reurl');

전체 코드:

 
 

2014-4-23 Modification

오늘은 URL의 값을 가져오기 위해 위의 방법을 사용하고 있습니다. 매개변수를 구문 분석할 때 URL에 전달된 중국어 매개변수는 구문 분석 시 아무리 테스트를 하더라도 왜곡됩니다. 디버깅을 좀 해보니 매개변수를 전달할 때 한자 인코딩에 encodeURI를 사용한 반면, 위의 방법은 매개변수 인코딩을 구문 분석할 때 unescape를 사용했다는 사실을 발견했습니다. 그냥 decodeURI로 변경하면 됩니다.

첨부 파일: W3School 소개:

JavaScript unescape() 함수

unescape() 함수는 escape()로 인코딩된 문자열을 디코딩할 수 있습니다.

매개변수 설명
string 필수입니다. 디코딩하거나 이스케이프 해제할 문자열입니다.

说明

该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 Unicode 字符 \u00xx 和 \uxxxx 替换这样的字符序列进行解码。

提示和注释

注释:ECMAScript v3 已从标准中删除了 unescape() 函数,并反对使用它,因此应该用 decodeURI() 和 decodeURIComponent() 取而代之。

综上: javascript对参数编码解码方法要一致:

escape()   unescape()

encodeURI()   decodeURI()

encodeURIComponent()    decodeURIComponent() 

网上找的另一种javascript获取url中参数的方法:

<script language="JavaScript" type="text/javascript"> 
function GetUrlParms() 
{
 var args=new Object(); 
 var query=location.search.substring(1);//获取查询串 
 var pairs=query.split("&");//在逗号处断开 
 for(var i=0;i<pairs.length;i++) 
 { 
  var pos=pairs[i].indexOf(&#39;=&#39;);//查找name=value 
   if(pos==-1) continue;//如果没有找到就跳过 
   var argname=pairs[i].substring(0,pos);//提取name 
   var value=pairs[i].substring(pos+1);//提取value 
   args[argname]=unescape(value);//存为属性 
 }
 return args;
}
var args = new Object();
args = GetUrlParms();
//如果要查找参数key:
if(args["id"]!=undefined)
{
//如果要查找参数key:
var value1 = args["id"] ;
alert(value1);
}</script>

 jquery 取url参数和在url加参数

(function ($) {
 $.extend({
  Request: function (m) {
   var sValue = location.search.match(new RegExp("[\?\&]" + m + "=([^\&]*)(\&?)", "i"));
   return sValue ? sValue[1] : sValue;
  },
  UrlUpdateParams: function (url, name, value) {
   var r = url;
   if (r != null && r != &#39;undefined&#39; && r != "") {
    value = encodeURIComponent(value);
    var reg = new RegExp("(^|)" + name + "=([^&]*)(|$)");
    var tmp = name + "=" + value;
    if (url.match(reg) != null) {
     r = url.replace(eval(reg), tmp);
    }
    else {
     if (url.match("[\?]")) {
      r = url + "&" + tmp;
     } else {
      r = url + "?" + tmp;
     }
    }
   }
   return r;
  }

 });
})(jQuery);

使用方法

dev.zhang.com/IOF.Signup/index_uscn_chs.html?act=1

1、取值使用

$.Request("act") = 1

2、url加参数

$.UrlUpdateParams(window.location.href, "mid", 11111),

结果window.location.href?mid=11111

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

jQuery实现监控页面所有ajax请求的方法

关于jquery ajaxfileuplod 上传文件 essyui laoding的效果

위 내용은 jquery를 사용하여 URL 매개변수와 URL 및 매개변수를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.