2017-03-17 8 views
1

を返していると、このいずれかを把握することはできません。でReplaceAllは、私が継承されたいくつかのJavaScriptの作業間違った番号

fa = parseFloat(replaceAll($("#face_amount").val(),',','')) 

face_amountが999,999(または単一カンマで任意の数)fa = 999999が、ある場合にはface_amountが1,000,000 fa = 1000

face_amountの場合は、表示用のカンマが必要です。

私は非常にjavascriptになっているので、どんな助けでも大歓迎です。

+3

あなたは 'replaceAll'関数を見る必要があります。 – Adam

+0

すべてのあなたの答えをありがとう!私は 'replaceAll'がjavascript関数ではなく、代わりにカスタム関数であることを認識していなかったような騒ぎです。 – user3850146

答えて

1

replaceAllが何をしているのかわからないと、私は実際にそのコード行を修正することはできませんが、代わりに別の置換関数を使用してみることができます。

fa = parseFloat($("#face_amount").val().replace(/,/g,'')) // This works, returns 1000000 

は、私はあなたのreplaceAll機能をグローバルにカンマが一致していないという問題があると思います。以下のコード行は、最初のカンマしか見つからず、そこで停止します。コード行は、グローバル正規表現を使用してすべてのカンマを検索します。

fa = parseFloat($("#face_amount").val().replace(',','')) // This doesn't work, returns 1000 
0

あなたの目標は、すべての非数値または.値を排除することであるならば、あなたはあなたparseFloat前に簡単な正規表現を使用することができますに:。

var floater = parseFloat($("#face_amount").val().replace(/[^\d\.]+/g, '')) 
+0

'\ d'を使って' [^ \ d] 'の代わりにすべての非数字をマッチさせることができます – Adam

+0

' parseInt() 'は基数が' parseFloat() 'にはありません。 – zer00ne

+0

@ zer00ne derp!ありがとう、私の答えを更新しました。 –

0

私のために動作しますが、私は私のreplaceAllを含まコード:

function replaceAll(str,from,to){ 
 
    var re = new RegExp(from,"g"); 
 
    return str.replace(re,to); 
 
} 
 

 

 
var face_amount = '999,999'; 
 
var fa = parseFloat(replaceAll(face_amount,',','')); 
 
console.log(face_amount,': ',fa); 
 

 
face_amount = '1,000,000'; 
 
fa = parseFloat(replaceAll(face_amount,',','')); 
 
console.log(face_amount,': ',fa);

関連する問題