2017-12-13 6 views
1

MyFruitの割合を文字列で取得したいと考えています。 しかし、私の変数CleanStringを使う前に、10進数の区切り文字( "。"または "、")以外の文字列からの数字だけを残したいと思います。 なぜそれがうまくいかないのかわかりません。例、 "バナナ"がない場合... パーセントでバナナがある場合、結果 "1,2"を取得したいと思います。あなたは、小文字の文字列に小文字の単語を検索し、パーセント記号までインデックスを取ることができる10進数以外の文字列の数字のみを保持する

var MyFruitSalad = "orange* 1,5%, bananaX, banana,BaNana_1,2%, apple_5 %, pineapple:3.5%"; 
 
var MyFruit = "banana"; 
 
var PercentMyFruit = MyFruitSalad.slice(MyFruitSalad.indexOf(MyFruit) + MyFruit.length).split('%').shift(); 
 

 
var CleanString = PercentMyFruit.replace(/[^0-9$.,]/g, ''); 
 
console.log(CleanString);

+0

あなたの予想される出力は何ですか? – C2486

+0

あなたが見たいものの例を結果として投稿してください。 – Rodrigo

+1

明確にすることが重要です、私はあなたがコンマから来たと思う "、"小数に使用されていますか? –

答えて

1

。次に、不要な文字を置き換えます。

String#indexOf大文字と小文字が区別されます。

function getValue(string, word) { 
 
    var index = string.toLowerCase().indexOf(word.toLowerCase()), 
 
     part = string.slice(index + word.length, string.indexOf('%', index)); 
 

 
    return index === -1 
 
     ? 'no ' + word + ' found!'  // or throw an exception 
 
     : part.replace(/[^0-9$.,]/g, ''); 
 
} 
 

 
console.log(getValue("orange* 1,5%, BaNana_1,2%, apple_5 %, pineapple:3.5%", "banana")); 
 
console.log(getValue("orange* 1,5%, BaNana_1,2%, apple_5 %, pineapple:3.5%", "foo"));

+0

var "サラダ"に "バナナ"がないと動作しません。結果は常に「1」です。 – pifou

関連する問題