从类似URL的字符串中获取特定子字符串

时间:2013-07-04 05:35:25

标签: javascript jquery string substring

$("#index-link")[0].search = "?isNameChecked=False&isDateChecked=False&isStatusChecked=True"

如何使用jQuery从上面的字符串中找到isStatusChecked == truefalse

6 个答案:

答案 0 :(得分:1)

我想有几种方法可以做到。 一种方法是str.indexOf("isDateChecked=False"),如果找到字符串,它将返回value > -1

但是,如果要在要检查的子字符串中允许可变间距,则正则表达式可能是更好的选项。对于固定字符串,我会避免正则表达式并使用indexof

答案 1 :(得分:0)

答案 2 :(得分:0)

发现了一个类似的问题,它提供了一个执行此here的函数。

稍微修改一下(假设你想使用一串文字,而不是地址栏中的网址)我想出了这个 -

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

这是行动中的小提琴 - http://jsfiddle.net/dNe38/

使用Pranav建议的正则表达式找到该值。

答案 3 :(得分:0)

不需要jQuery。使用内置的JavaScript函数:

var a = "?isNameChecked=False&isDateChecked=False&isStatusChecked=True";

var params = a.split("&");

params.forEach(function(param) {
    var keyValue = param.split("=");
    var key = keyValue[0];
    var value = keyValue[1];
    if(key === 'isStatusChecked') {
        alert(value); //True
    }
});

JSFiddle

即使您向其添加更多参数也能正常工作。

答案 4 :(得分:0)

你可以通过isStatusChecked

拆分字符串
var newString = asearch.split("isStatusChecked=").pop(-1);

答案 5 :(得分:0)

简单的正则表达式会成功:

var str = "?isNameChecked=False&isDateChecked=False&isStatusChecked=True";
str.match(/isStatusChecked=(.*?)(?:$|&)/); // ["isStatusChecked=True", "True"]