2017-07-17 31 views
3

まず、私はこれまでに質問されているような多くの質問を知っていますが、私の頭を正規表現の周りに包むのは難しいので、 TOKEN (SwapToken) - 1005.00000127 TOKENJavaScriptの文字列の特定の部分を抽出する

だけの数の変更は、それがわずか1005.00000128へとか1500.001に変化させることができる、と私は私が必要とする文字列を抽出するプログラムを作成しました:

私は常に変化し、文字列を持って、それがあります。唯一のことは、私は数を分離/抽出する必要があるか、あるいは文字列を抽出して、数だけを含む別の変数を作成する必要があるということです。

番号が変更される可能性があるため、コーディングの見た目が違うでしょうか?私はどのように番号を抽出することができますか? Regexは最良の選択ですが、他にもいくつかあるかもしれません。

は、それはあなたの入力についての仮定をしますが、あなたが

/\d+\.\d+/g

を使用することができますが、

+0

あなたの正規表現は、右側にやっていることを説明するには、あなたは常にダッシュを持っていますか?そうであれば、それを分割してTOKENで分割することができます。 str.split( ' - ')[1] .split( 'TOKEN')[0] .trim() – valin077

+1

'str.match(/ [0-9。] + /)[0] ] ' –

+0

あなたはいつもドット"。 "を持っていますか?もしそうなら正規表現 '\ d + \。\ d +'を使うことができます。 –

答えて

6

ここでは簡単な正規表現ですありがとうございました。主にそれの中の何も10進数のようには見えません。

\ dは任意の数字(0-9)を意味します。
\。
+は、上記の文字のうちの1つ以上を意味します。

正規表現では、バックスラッシュが必要です。任意の文字にマッチすることを意味するので、エスケープする必要があります。

この特定の正規表現は、1桁以上の数字の後に "。"が続くものを見つけることによって10進数のように見えるものを見つけます。 1つ以上の数字が続きます。

let str = "TOKEN (SwapToken) - 1005.00000127 TOKEN" 
 

 
let num = str.match(/\d+\.\d+/g)[0]; 
 

 
console.log(parseFloat(num))

ここでは、正規表現をテストすることができますサイトです。それはいくつかのきちんとした機能を持っています。 「 - 」とhttps://regex101.com/r/8RuY3A/1

+0

がきれいです。もし私が(低い評判)できるなら、 –

関連する問題