开发者

Replace numbers in Javascript

I have this string: £0,00

Which i want to replace with float 3.95 for instance. But i want to keep the £ and the ","

So result -> £3,95

How would i do it?

--

Added some details:

Will the currency symbol always be a £?

The currency symbol might be before and sometimes behind the numbers. ie 0,00 kr

Will the separator always be ,, or might it be . or even an arbitrary character?

The separator might be . sometimes.

Will there always be two decimal places?

The decimal will always be 2 places.

How ma开发者_如何学Pythonny integer digits might there be, and will there be a thousands separator?

It will not be above 100.


function convert (proto, value) {
  return proto.replace (/0(.)00/, function (m, dp) {
    return value.toFixed (2).replace ('.', dp);
  });
}

the proto parameter specifies the format, it must have a sub-string consisting of a single 0 digit followed by any character followed by two 0 digits, this entire sub-string is replaced by the numeric value parameter replacing the decimal point with the character between the 0 digits in the proto.


<script type="text/javascript">
function Convert(Value) {
    return '£' + Value.toString().replace('.', ',');
}
alert(Convert(3.95));
</script>


Regular expression /(\D*)\s?([\d|.|,]+)\s?(\D*)/ will return an array with following values:

  • [0] = whole string (eg "£4.30"
  • [1] = prefix (eg. "£")
  • [2] = numerical value (eg. "4.30")
  • [3] = suffix (eg. "kr")

Usage: var parts = /(\D*)\s?([\d|.|,]+)\s?(\D*)/.exec(myValue);

It also handles cases where either prefix or suffix has following or leading space.

And whenever you need to replace the comma from number, just use the value.replace(",",".") method.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜