2017-11-14 3 views
1

私はHTTPリクエストで取得する変数の値を使用しようとしている、と私は戻って取得することですしていますこの:の宣言で文字列をある値を保存し、VAR宣言文字列を受け取るだけ

var nums=["155","175","195","205","215","225","235","245","255","265","275","285","295","315","325"] 

変数。私が望むのは、ライン全体ではなく、値だけを集めることです。だから、この場合、私は保存するだろう["155","175","195","205","215","225","235","245","255","265","275","285","295","315","325"]

文字列でこの種の操作を行うことができるJQueryまたはJSライブラリはありますか? HTTPリクエストで何が受信されるかわからないので、普遍的なソリューションを実装したいと思います。

ありがとうございました。

+6

APIからこの応答を受け取った場合、間違いがあります。 – 31piy

+2

それは非常に無効に見えるので、あなたが戻ってくるものだと確信していますか? 「155」、「175」、「195」、「205」、「215」、「225」、「235」、「245」、「245」の行に沿ってjson応答を受け取る方が、 'JSON.parse'を使って配列に解析することができる、255、265、275、285、295、315、325、 – Liam

+0

これは奇妙なjsonp実装ですか? – RickyA

答えて

2

var str = 'var nums=["155","175","195","205","215","225","235","245","255","265","275","285","295","315","325"]' 
 
var resStr = str.split('=')[1]; 
 
var arr = JSON.parse(resStr); 
 
console.log(arr);

第二の位置の値を取得し、その後=で文字列を分割します。配列表現がJSON.parse

+0

'VARのARR = JSON.parse(resStr)ではありません;' split' – Liam

+1

@Liamがスニペットに追加した後 '方が良いでしょう。) – Durga

2

あなたは正規表現を使用することができます使用を取得するには、次の

var myString = 'var nums=["155","175","195","205","215","225","235","245","255","265","275","285","295","315","325"]'; 
var myRegexp = /var\s*nums\s*=(.*)/g; 
var match = myRegexp.exec(myString); 
console.log(match[1]); 

最初の一致グループ(match[1])あなたは配列をしたい場合(文字列として)あなたの配列

が含まれています (配列を含む文字列ではありません)、JSONとして逆シリアル化することができます。


発言として

、いくつかのコメントに記載されているように、APIは、(var nums =部分と)この種のデータを返すべきではありません。特定の理由がない場合は、APIを確認する必要があります。

+0

私は助けるが、正規表現することを考えることはできませんここでは過剰です。 [単純な分割](https://stackoverflow.com/a/47285268/542251)は、オーバーヘッドが少なくても同じことをします – Liam

+0

そうでないかもしれない。結果が数値だけを含む文字列の場合、おそらく正しいでしょう。文字列に '='記号が含まれていると、 'split'答えが機能しません。とにかく、私はパフォーマンスが問題のポイントであるとは思っていません、そして、私は代わりの機能的な答えを提供しています。 – Pac0

関連する問題