0

指定された部分文字列を抽出し、その部分文字列に続く数字を抽出する必要があります。

たとえばcid=159、文字列から抽出する必要があります: http://website.com/ProductCats.asp?cid=159&otherjunk=1. 一定のままですcid=が、それに続く数字は変わる可能性があり、1 ~ 4 桁の間のどこかになります。

そのパターンを抽出する方法はありますか?

ありがとうございます。

4

2 に答える 2

2

これは役立つかもしれません。どこで見つけたのか思い出せないのですが、URLを取得して参照可能な配列に変数を代入する関数です。また、これは純粋なJavaScriptです。

function getUrlVars() {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)     {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

だからあなたはするだろう

var myURLArray = getUrlVars();
var cid = myURLArray['cid'];

とても助かりました。繰り返しますが、これは作成していませんが、便利です。

于 2013-02-22T19:57:52.537 に答える
0

必要に応じて、現在のウィンドウ URL だけでなく、任意の URL に JavaScript のみを使用します。getLocationこれに関連する以前のSOの質問から関数を借りました。

var getLocation = function(href) {
    var l = document.createElement("a");
    l.href = href;
    return l;
};
var getUriObject = function(href){
    var l = getLocation(href);
    var queryArray=l.search.substr(1).split('&');
    var uriObject={};
    for(var i=0;i<queryArray.length;i++){
        uriObject[queryArray[i].split('=')[0]]=queryArray[i].split('=')[1];
    }
    return uriObject;
}
alert(getUriObject("http://website.com/ProductCats.asp?cid=159&otherjunk=1").cid);
于 2013-02-22T20:03:42.300 に答える