$("#index-link")[0].search = "?isNameChecked=False&isDateChecked=False&isStatusChecked=True"
jQueryを使用して上記の文字列からisStatusChecked == true
またはを見つけるにはどうすればよいですか?false
$("#index-link")[0].search = "?isNameChecked=False&isDateChecked=False&isStatusChecked=True"
jQueryを使用して上記の文字列からisStatusChecked == true
またはを見つけるにはどうすればよいですか?false
やり方はいくつかあると思います。1 つの方法は、文字列が見つかった場合str.indexOf("isDateChecked=False")
に返されるものです。value > -1
ただし、チェックしている部分文字列で可変間隔を許可する場合は、正規表現の方が適している場合があります。ただし、固定文字列の場合は、正規表現を避けて indexof を使用します
これを実行する関数を提供する 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 が提案したように、値は正規表現を使用して検出されます。
substr 関数を見る必要があるかもしれませんhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr
または検索方法http://www.w3schools.com/jsref/jsref_search.aspを使用します
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
}
});
パラメータを追加しても機能します。
文字列がisStatusCheckedの場合は分割できます
var newString = asearch.split("isStatusChecked=").pop(-1);
単純な正規表現は仕事をします:
var str = "?isNameChecked=False&isDateChecked=False&isStatusChecked=True";
str.match(/isStatusChecked=(.*?)(?:$|&)/); // ["isStatusChecked=True", "True"]