location.hash的Javascript regexp匹配

location.hash的Javascript regexp匹配,javascript,regex,Javascript,Regex,如何匹配以下哈希字符串中文本“flt_man”之后和“,”之前的每个变量 #flt_man100,flt_man234,flt_man334,flt_manABC, 我试过了,但没用 var check = location.hash.match(/flt_man([^,]*)/g); 我需要匹配返回一个值为100234334的数组,“ABC”这个怎么样 var str = "#flt_man100,flt_man234,flt_man334,flt_manABC,"; var regex

如何匹配以下哈希字符串中文本“flt_man”之后和“,”之前的每个变量

#flt_man100,flt_man234,flt_man334,flt_manABC,
我试过了,但没用

var check = location.hash.match(/flt_man([^,]*)/g);
我需要匹配返回一个值为100234334的数组,“ABC”

这个怎么样

var str = "#flt_man100,flt_man234,flt_man334,flt_manABC,";
var regex = /flt_man([^,]*)/g;
var arr = new Array();

var result; 
while(result = regex.exec(str)){
    arr.push(result[1]); //can check if numeric
}
console.log(arr); //arr contains what you need


检查是否可以使用numeric,然后立即调用
parseInt()

更便宜的替代方案(性能在这里并不重要)

这使用了一些我认为足够有用的函数来进行抽象

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;
}
String.prototype.splitCast=函数{
var arr=该分割;

for(var i=0,l=arr.length;首先在逗号上显示。然后,匹配。此外,如果前缀始终为4个字符,请使用子字符串而不是匹配。具体情况如何,似乎与我的预期一样?@adeneo
需要匹配以返回值为100234334的数组,“ABC”
为了白痴的缘故,你可以低到这样做:
location.hash.substr(1).replace(/(^flt|man,$)/g',).split(',flt|man')
哦,我知道你想要的是整数而不是字符串。好吧……那么给读者练习;)使用我添加的
splitCast()
来转换这些整数
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;
}
// [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;
    }));