4

jQueryを使用してhtmlから抽出された一連の文字列があります。

それらは次のようになります。

var productBeforePrice = "DKK 399,95";
var productCurrentPrice = "DKK 299,95";

価格差を計算するには、数値を抽出する必要があります。

(だから私は ≈

var productPriceDiff = DKK 100";

あるいは単に:

var productPriceDiff = 100";)

誰でも私がこれを行うのを手伝ってもらえますか?

ありがとう、ヤコブ

4

4 に答える 4

10

まず、入力価格を文字列から数値に変換する必要があります。次に、減算します。そして、結果を "DKK ###,##" 形式に戻す必要があります。これらの 2 つの機能が役立つはずです。

var priceAsFloat = function (price) {  
   return parseFloat(price.replace(/\./g, '').replace(/,/g,'.').replace(/[^\d\.]/g,''));
}

var formatPrice = function (price) {  
   return 'DKK ' + price.toString().replace(/\./g,',');
}

次に、これを行うことができます:

var productBeforePrice = "DKK 399,95"; 
var productCurrentPrice = "DKK 299,95";
productPriceDiff = formatPrice(priceAsFloat(productBeforePrice) - priceAsFloat(productCurrentPrice));
于 2009-06-12T16:04:40.960 に答える
5

試す:

var productCurrentPrice = productBeforePrice.replace(/[^\d.,]+/,'');

編集: これにより、数字、カンマ、およびピリオドを含む価格が取得されます。数値形式が正しいこと、または数値、ピリオドなどが連続していることは確認されません。あなたが期待する正確な数の定義をより正確にできれば、それは役に立ちます。

于 2009-06-12T15:47:22.907 に答える
2

また試してください:

var productCurrentPrice = productBeforePrice.match(/\d+(,\d+)?/)[0];
于 2009-06-12T15:51:48.137 に答える
1
var productCurrentPrice = parseInt(productBeforePrice.replace(/[^\d\.]+/,''));

これにより、 productCurrentPrice が実際の数値になるはずです(質問を正しく理解していれば)。

于 2009-06-12T15:58:08.950 に答える