#anotherdata=value#iamlookingforthis=226885#id=101&start=1
鉴于上面的字符串我怎么能在字符串中提取“iamlookingforthis = 226885”?它的价值可能会改变,因为这是动态的。所以,其他实例可能是“iamlookingforthis = 1105”。位置/顺序也可能发生变化,可能位于中间或最后一部分。
提前谢谢你。
答案 0 :(得分:5)
您可以使用Regex来匹配特定文字。
像这样的例子
var str = '#anotherdata=value#iamlookingforthis=226885#id=101&start=1';
var value = str.match(/#iamlookingforthis=(\d+)/i)[1];
alert(value); // 226885
Regex101的解释:
#iamlookingforthis=
字面匹配字符#iamlookingforthis=
(不区分大小写)
(\d+)
\d+
匹配一个数字(等于[0-9]
)+
量词 - 在一次和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)i
修饰符:不敏感。不区分大小写的匹配(忽略[a-zA-Z]
的情况)见
另一种选择是拆分字符串。您可以按#|?|&
拆分它。
var str = '#anotherdata=value#iamlookingforthis=226885#id=101&start=1';
var parts = str.split(/[#\?&]/g); // split the string with these characters
// find the piece with the key `iamlookingforthis`
var filteredParts = parts.filter(function (part) {
return part.split('=')[0] === 'iamlookingforthis';
});
// from the filtered array, get the first [0]
// split the value and key, and grab the value [1]
var iamlookingforthis = filteredParts[0].split('=')[1];
alert(iamlookingforthis); // 226885
答案 1 :(得分:1)
这是一个片段:
var str = '#anotherdata=value#iamlookingforthis=226885#id=101&start=1';
var extracted = str.split("#").find(function(v){
return v.indexOf("iamlookingforthis") > -1;
});
alert(extracted); // iamlookingforthis=226885