如何用js提取字符串中(url)的某一段字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用js提取字符串中(url)的某一段字符相关的知识,希望对你有一定的参考价值。

比如:http://www.baidu.com/id=2837&diu=6574&it=87687 如何提取2837这段数字。
我用var b = "http://www.baidu.com/id=2837&diu=6574&it=87687".replace(/^.+id\=/,''); 提取的是2837&diu=6574&it=87687,如何只提取2837呢。

其实比较简单,分享一段我之前写的js提取URL参数的函数吧

function UrlParamHash(url) 
    var params = [], h;
    var hash = url.slice(url.indexOf("?") + 1).split('&');
    for (var i = 0; i < hash.length; i++) 
        h = hash[i].split("=");
        params.push(h[0]);
        params[h[0]] = h[1];
    
    return params;


// 如下使用, b就是你的URL字符串
var params = UrlParamHash(b),
    id = params['id'];

不过写完发现你的URL不是很标准,因为一般地址和参数直接是用"?"分割的,如果你的不是的话

你可以把函数里indexOf("?")根据你的域名换成indexOf("com/")之类的

也可以根据你具体的URL规则修改整个函数,反正原理就在这里

参考技术A var re = /\\id=([^&]+)$/gi;
var id = re.exec(location.search);
if (id && id[1]) 
  id = id[1];

 方法很多,这是最便捷的一种

参考技术B String.prototype.getQuery = function(name)

var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = this.substr(this.indexOf("\?")+1).match(reg);
if (r!=null) return unescape(r[2]); return null;

var s = "web1.aspx?status=item&mode=edit";
alert(s.getQuery("status"));
alert(s.getQuery("mode"));

String.prototype.getQuery = function(name)
的意思是为String对象增加一个getQuery(name)方法.
参考技术C 有个web方法,URLSearchParams,可以处理url字符串

如何提取DataTable中的某一列字段的所有数据,进行运算

最基本的,用for循环遍历行(datarow)
for(int i=0;i<datatable.Rows.Count;i++)

string strValue="";
strValue=datatable.rows[i][0].ToString();
//上面就是获取第i行第0列的值,如果要计算的话需要转换类型,如下:
int intValue=0;
int intValue=Int32.Parse(datatable.rows[i][0]);
//如果是有小数点的数据,如下:
double doubleValue=0;
double doubleValue=double.Parse(datatable.rows[i][0]);

数据可以取出来,计算就简单了。
如果你想求整列总和的话,可以用Datatable内置的方法:
string strSum = datatable.Compute("sum(列名)", "true").ToString(); //类型参照上面自己转,列名要写对,并且确定数据类型是数字。
参考技术A 最基本的,用for循环遍历行(datarow)
for(int i=0;i
string strValue="";
strValue=datatable.rows[i][0].ToString();
//上面就是获取第i行第0列的值,如果要计算的话需要转换类型,如下:
int intValue=0;
int intValue=Int32.Parse(datatable.rows[i][0]);
//如果是有小数点的数据,如下:
double doubleValue=0;
double doubleValue=double.Parse(datatable.rows[i][0]);

数据可以取出来,计算就简单了。
如果你想求整列总和的话,可以用Datatable内置的方法:
string strSum = datatable.Compute("sum(列名)", "true").ToString(); //类型参照上面自己转,列名要写对,并且确定数据类型是数字。

以上是关于如何用js提取字符串中(url)的某一段字符的主要内容,如果未能解决你的问题,请参考以下文章

js 正则表达式提取某一段字符

如何用setData修改数组

如何用awk命令提取文件中的某一列并统计该列中某个数字出现的次数?

js 如何用正则表达式提取数据

如何用EXCEL随机生成一定位数的字符串

c语言截取字符串中的一部分