2017-08-10 31 views
1

我有一个很长的字符串。如何找到已知字符串旁边的字符串。使用javascript/jQuery捕获已知字符串旁边的字符串

例如: '文本的...... “数” .lot: “999.999.9999”, “make_model”: “设备名称” ......大量的文字'。

我知道这个值“999.999.9999”。使用这个作为子字符串如何捕获“设备名称”并将其作为alert/console.log传递?设备名称不是固定长度。

感谢

+0

你不能,如果你不知道长度,或者它后面有什么,你只有一个起点没有终点,并且不能得到你想要的字符串 – adeneo

+2

什么是在每个末端串?看起来可能是JSON – charlietfl

+0

这是JSON吗?如果是这样,有更多的方法可以完成你想要做的事 – jas7457

回答

0

如果你确信数只重复一次和长度总是相同的,make_model总是在它旁边,你可以做这样的事情。 基本上它找到了数字的索引,并加上了数字的长度加上29个字符的make_model(“999.999.9999”,“make_model”:“),然后我们得到字符串的其余部分,直到达到双引号,那make_model年底,你想要什么。

var str = '.lot of text..."number":"999.999.9999","make_model":"device name"....lot of text.'; 
 
var chop = str.substr(str.indexOf('"999.999.9999"') + 29); 
 
chop = chop.substring(0,chop.indexOf('"')); 
 
console.log(chop);

+0

此解决方案有效,但我想知道如何? +29表示什么。它是为了去除“设备名称”之前的所有内容并执行此行chop.substring(0,chop.indexOf('''));获取引号之间的字符串? – crkr

+0

是@crkr,完全按照您的说法 – Javad

0

一个非常简单的答案是使用JSON.parse()

/* surround string with braces { <your string> } */ 
 
var input_str = '{' + '"foo":"bar","number":"999.999.9999","make_model":"some model name","device name":"some dummy device","name":"Arvind","profile":"freelancer"' + '}'; 
 

 
var json = JSON.parse(input_str); 
 
console.log(json['device name']);