私の Web ページには、正または負の通貨形式の合計があります。
Example $5.50 or $(5.50).
この値は、span タグ内に含まれるテキストに他なりません。私は値を読み取ってjsの数値に変換しようとしています。そこで、それに対して数学計算を実行できます。
Example $5.50 -> 5.50 and $(5.50) -> -5.50
負の通貨値を数値に変換するために、次の正規表現スクリプトを作成しました。
var regex = /^\$*?\((\d+(\.)?(\d+)?)\)$/
値の取得と変換を処理する次のメソッドがあります。
//retrieve value from template
$.fn.fieldVal = function () {
var val;
if ($(this).is(':input')) {
val = $(this).val();
} else {
val = $(this).text();
}
return convertCurrencyToNumeric(val);
};
//convert currency to numeric value
function convertCurrencyToNumeric(n) {
var regex = /^\$*?\((\d+(\.)?(\d+)?)\)$/
n = n.replace(/[^0-9-\.]/g, '');
if(isNumber(n)) {
n = parseFloat(n);
return n;
}
return 0;
}
//test if numeric
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
値が負であるかどうかを最初にテストし、次に負の場合は値を正規表現の結果に置き換える方法がわかりません。