2017-08-10 8 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は常にそれの隣にあることを確認している場合は、このような何かを行うことができます。 基本的に数字のインデックスを見つけ、numberとmake_model( "999.999.9999"、 "make_model": ")の長さを29文字で追加し、その後に残りの文字列を二重引用符に達するまであなたが何をしたいmake_modelの最後のthatsと。

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は何を意味しますか? "device name"の前のすべてを削除して、この行を行います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']);

関連する問題