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

jQueryを使用して上記の文字列からisStatusChecked == trueまたはを見つけるにはどうすればよいですか?false

4

6 に答える 6

1

やり方はいくつかあると思います。1 つの方法は、文字列が見つかった場合str.indexOf("isDateChecked=False")に返されるものです。value > -1

ただし、チェックしている部分文字列で可変間隔を許可する場合は、正規表現の方が適している場合があります。ただし、固定文字列の場合は、正規表現を避けて indexof を使用します

于 2013-07-04T05:39:24.663 に答える
0

これを実行する関数を提供する this と同様の質問が見つかりましたhere

少し変更することで(アドレスバーのURLではなく、テキストの文字列を使用したい場合)、これを思いつきました-

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 が提案したように、値は正規表現を使用して検出されます。

于 2013-07-04T05:41:49.337 に答える
0

substr 関数を見る必要があるかもしれませんhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr

または検索方法http://www.w3schools.com/jsref/jsref_search.aspを使用します

于 2013-07-04T05:37:32.370 に答える
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

パラメータを追加しても機能します。

于 2013-07-04T05:43:18.110 に答える
0

文字列がisStatusCheckedの場合は分割できます

var newString = asearch.split("isStatusChecked=").pop(-1);
于 2013-07-04T05:44:01.883 に答える
0

単純な正規表現は仕事をします:

var str = "?isNameChecked=False&isDateChecked=False&isStatusChecked=True";
str.match(/isStatusChecked=(.*?)(?:$|&)/); // ["isStatusChecked=True", "True"]
于 2013-07-04T06:04:54.273 に答える