怎么分割js getquerystringg得到的参数

js方法获取get方式传过来的参数
有两种方法:比如url为:/reg.html?sid=1&a=2&b=3&c=4
1、function GetQueryString(name) {
var reg = new RegExp(&(^|&)& + name + &=([^&]*)(&|$)&,&i&);
var r = window.location.search.substr(1).match(reg);
if (r!=null) return (r[2]);
var sid = GetQueryString(&sid&);
var a = GetQueryString(&a&);
var b = GetQueryString(&b&);
var c = GetQueryString(&c&);
2、var $_GET = (function() {
var url = window.document.location.href.toString();
var u = url.split(&?&);
if (typeof(u[1]) == &string&) {
u = u[1].split(&&&);
var get = {};
for (var i in u) {
var j = u[i].split(&=&);
get[j[0]] = j[1];
return {};
var sid=ad = $_GET['sid'];
var a=ad = $_GET['a'];
var b=ad = $_GET['b'];
var c=ad = $_GET['c'];http://www.jb51.net/article/48942.htm
JS获取URL中参数值(QueryString)的4种方法分享
作者: 字体:[增加 减小] 类型:转载
今天碰到要在一个页面获取另外一个页面url传过来的参数,一开始很本能的想到了用 split("?")这样一步步的分解出需要的参数。后来想了一下,肯定会有更加简单的方法的!所以在网上找到了几个很又简单实用的方法,mark下。
方法一:正则法
复制代码 代码如下:
function getQueryString(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
// 这样调用:
alert(GetQueryString("参数名1"));
alert(GetQueryString("参数名2"));
alert(GetQueryString("参数名3"));
方法二:split拆分法
复制代码 代码如下:
function GetRequest() {
var url = location. //获取url中"?"符后的字串
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for(var i = 0; i & strs. i ++) {
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
return theR
var Request = new Object();
Request = GetRequest();
// var 参数1,参数2,参数3,参数N;
// 参数1 = Request['参数1'];
// 参数2 = Request['参数2'];
// 参数3 = Request['参数3'];
// 参数N = Request['参数N'];
方法三:又见正则
通过JS获取url参数,这个经常用到。比如说一个url:http://wwww.jb51.net/?q=js,我们想得到参数q的值,那可以通过以下函数调用即可。
复制代码 代码如下:
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
//获取url中"?"符后的字符串并正则匹配
var context = "";
if (r != null)
context = r[2];
return context == null || context == "" || context == "undefined" ? "" :
alert(GetQueryString("q"));
方法四:单个参数的获取方法
function GetRequest() {
var url = location. //获取url中"?"符后的字串
if (url.indexOf("?") != -1) {
//判断是否有参数
var str = url.substr(1); //从第一个字符开始 因为第0个是?号 获取所有除问号的所有符串
strs = str.split("=");
//用等号进行分隔 (因为知道只有一个参数 所以直接用等号进分隔 如果有多个参数 要用&号分隔 再用等号进行分隔)
alert(strs[1]);
//直接弹出第一个参数 (如果有多个参数 还要进行循环的)
阅读(...) 评论()本帖子已过去太久远了,不再提供回复功能。您当前所在位置:&>>&&>>&正文
注意:既使b类不可以转换为A类,使用is做判断的时候,是可以通过编译的,也不会抛出异常,只是会给出提
在MVC中如何获取Request.QueryString中的参数值的方法
创建时间:日 08:56&&阅读次数:(38315)
今天在MVC中,试图用Request.QueryString["type"]取到URL中参数type的值,却发现怎么也取不值。仔细检查我的路由配置:public&static&void&RegisterRoutes(RouteCollection&routes){routes.IgnoreRoute("{resource}.axd/{*pathInfo}");routes.MapRoute("Default",&//&路由名称"{controller}/{action}/{id}/{type}",&//&带有参数的&URLnew{controller&=&"Home",action&=&"Index",id&=&UrlParameter.Optional,type=&UrlParameter.Optional}&//&参数默认值);}虽说有稍许的改动,但也没有错误,URL也是能正确解析。调试到程序中测试,发现不管怎么弄,Request.QueryString.Count总是等于0,也就是说,Request.QueryString中一直没有值,唉~崩溃了。经过一上午的努力,终于是找到了问题的解决方法,我们可以通过以下两种方法来获取到URL中参数的值,但为什么Request.QueryString取不到值的具体原因不知道,什么情况下Request.QueryString才会有值等也不清楚,Asp.MVC本人也没有深究,只是想多了解一些asp.net新技术,所以也不打算深究。下面直接讲如何在MVC中取到URL参数值的两种方法吧:1,该方法也是最简单的方法:通过Request.RequestContext.RouteData.Values["参数名"]来获取。本人猜想,该方法是解析出路由中的各参数的值吧,因为我在路由中有配置{controller}/{action}/{id}/{type},所以使用Request.RequestContext.RouteData.Values["type"],就能取到url中type的值了。本人的示例中取id与type参数值的方法如下:private&int&GetUrlID(){int&ID&=&0;if&(Request.RequestContext.RouteData.Values["id"]&!=&null){int.TryParse(Request.RequestContext.RouteData.Values["id"].ToString(),&out&ID);}return&ID;}private&string&GetUrlType(){string&type&=&string.Eif&(Request.RequestContext.RouteData.Values["type"]&!=&null){type&=&Request.RequestContext.RouteData.Values["type"].ToString();}return&}经本人测试,是能正常取到值的。2,在action方法中定义路由中对应的参数,如本例如,可如下定义action方法:[HttpGet]public&ActionResult&SupplierEdit(int&ID,string&Type){ViewData["ID"]&=&ID;ViewData["Type"]&=&Treturn&View();}这样,系统就会自动将ID与Type的值传到action方法中来的了,我们就可以在Views文件夹下的前台文件中使用ViewData["ID"]与ViewData["Type"]来取到url中ID,Type的值了。经测试,这个方法也是行的通的。当然,在前台文件中使用&%:Request.RequestContext.RouteData.Values["type"]%&&同样可以取到值。以上为本人取Request.QueryString值的两个小方法,因为自己对Asp.MVC了解并不太多,所以如果有错误的地方,请大家在评论中指正。
来源:.net学习网
说明:所有来源为 .net学习网 的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf】
发表评论:
请输入问题&&的结果(结果是:)

我要回帖

更多关于 getquerystring 乱码 的文章

 

随机推荐