1

次のハッシュ文字列で、テキスト "flt_man" の後、"," の前にあるすべての変数を一致させるにはどうすればよいですか?

#flt_man100,flt_man234,flt_man334,flt_manABC,

これを試しましたが、うまくいきません。

var check = location.hash.match(/flt_man([^,]*)/g);

値が 100,234,334,"ABC" の配列を返すには、一致が必要です

4

3 に答える 3

1

より安価な代替手段(ここではパフォーマンスはそれほど重要ではありません)

var str = "#flt_man100,flt_man234,flt_man334,flt_manABC,";
var arr = str.replace(/[#]?flt_man/g,'').splitCast(',');
arr.pop();

フィドル

これは、抽象化するのに十分役立つと私が思ったいくつかの関数を使用します

String.prototype.splitCast = function(S){
    var arr = this.split(S);
    for(var i=0, l=arr.length; i<l; i++){
        var value= arr[i];
           arr[i] = !isNaN(parseInt(value,10)) && (parseFloat(value,10) == parseInt(value,10)) ? parseInt(value) : value;
    }
    return arr;
}
于 2013-05-15T19:38:56.923 に答える
0
// [100, 234, 334, "ABC"]
console.log(location.hash.substr(1) // Get rid of the '#'
    .split(',')
    .filter(function (param) { // Find the parameters
        return /^flt_man/.test(param);
    })
    .map(function (param) { // Get rid of the prefix
        return param.substr('flt_man'.length);
    })
    .map(function (param) { // Optionally cast them to numbers
        return +param || param;
    }));
于 2013-05-15T20:09:35.510 に答える