Javascript 解析文本并获取值

Javascript 解析文本并获取值,javascript,jquery,html,Javascript,Jquery,Html,我有很多链接: var one = '/news/local/edit?user=marcus&owner=ffff'; var two = '/news/other/edit?user=josh&owner=ddd'; var three = '/news/local/edit?user=john'; var four = '/news/local/test/marcus/edit?owner=aaaa&user=ady'; 如何从这些链接中获取用户的值 这应返回:

我有很多链接:

var one = '/news/local/edit?user=marcus&owner=ffff';
var two = '/news/other/edit?user=josh&owner=ddd';
var three = '/news/local/edit?user=john';
var four = '/news/local/test/marcus/edit?owner=aaaa&user=ady';
如何从这些链接中获取
用户
的值

这应返回:

one = 'marcus';
two = 'josh';
three = 'john';
four = 'ady';
结果可以是一个数组。

或者更安全的:

var str = '/news/local/edit?user=marcus&owner=ffff';
var one = str.split('user=')[1].split('&')[0];

或者通过搜索而不是拆分

var capture = one.substring(one.indexOf("user=")+5);
var one = capture.substring(0, capture.indexOf("&"));
试试这个

one = one.replace(/.*?user\=([a-zA-Z0-9]*)\&*.*/g, '$1')
two = two.replace(/.*?user\=([a-zA-Z0-9]*)\&*.*/g, '$1')
three = three.replace(/.*?user\=([a-zA-Z0-9]*)\&*.*/g, '$1')

另一种选择是:


'/asd/?user=andy&algo=mas'.replace(//.+user=([^\&]+).+$/,“$1')//返回“andy”
您可以使用正则表达式提取查询字符串参数。请参考下面的问题

根据此处上下文编辑的答案中的相关代码:
此解析器可以为您执行此操作;)


您可以使用此正则表达式捕获用户:

var one = '/news/local/edit?user=marcus&owner=ffff';

var userOne = /user=([^&]+)/.exec(one)[1]
从这里开始,只需进行一个小的修改,即可作为参数接收您想要查找的字符串值

function getParameterByName(name, path) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(path);
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

您从哪里获得这些链接?它们是代码中的硬编码字符串,还是锚定标记中的
scr=
属性的一部分,或者?是的,有一些属性从未见过如此多的答案如此之快。您可以更改找到的函数以查看变量,而不是
window.location.search
。如果希望使用它,请选择“user”,注意第二行的长度!
var one = '/news/local/edit?user=marcus&owner=ffff';

var userOne = /user=([^&]+)/.exec(one)[1]
function getParameterByName(name, path) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(path);
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}