currency.js
上传用户:kimgenplus
上传日期:2016-06-05
资源大小:20877k
文件大小:7k
源码类别:

OA系统

开发平台:

Java

  1. /*
  2. Copyright (c) 2004-2006, The Dojo Foundation
  3. All Rights Reserved.
  4. Licensed under the Academic Free License version 2.1 or above OR the
  5. modified BSD license. For more information on Dojo licensing, see:
  6. http://dojotoolkit.org/community/licensing.shtml
  7. */
  8. dojo.provide("dojo.i18n.currency");
  9. dojo.require("dojo.experimental");
  10. dojo.experimental("dojo.i18n.currency");
  11. dojo.require("dojo.regexp");
  12. dojo.require("dojo.i18n.common");
  13. dojo.require("dojo.i18n.number");
  14. dojo.require("dojo.lang.common");
  15. dojo.i18n.currency.format = function (value, iso, flags, locale) {
  16. flags = (typeof flags == "object") ? flags : {};
  17. var formatData = dojo.i18n.currency._mapToLocalizedFormatData(dojo.i18n.currency.FORMAT_TABLE, iso, locale);
  18. if (typeof flags.places == "undefined") {
  19. flags.places = formatData.places;
  20. }
  21. if (typeof flags.places == "undefined") {
  22. flags.places = 2;
  23. }
  24. flags.signed = false;
  25. var result = dojo.i18n.number.format(value, flags, locale);
  26. var sym = formatData.symbol;
  27. if (formatData.adjSpace == "symbol") {
  28. if (formatData.placement == "after") {
  29. sym = " " + sym;
  30. } else {
  31. sym = sym + " ";
  32. }
  33. }
  34. if (value < 0) {
  35. if (formatData.signPlacement == "before") {
  36. sym = "-" + sym;
  37. } else {
  38. if (formatData.signPlacement == "after") {
  39. sym = sym + "-";
  40. }
  41. }
  42. }
  43. var spc = (formatData.adjSpace == "number") ? " " : "";
  44. if (formatData.placement == "after") {
  45. result = result + spc + sym;
  46. } else {
  47. result = sym + spc + result;
  48. }
  49. if (value < 0) {
  50. if (formatData.signPlacement == "around") {
  51. result = "(" + result + ")";
  52. } else {
  53. if (formatData.signPlacement == "end") {
  54. result = result + "-";
  55. } else {
  56. if (!formatData.signPlacement || formatData.signPlacement == "begin") {
  57. result = "-" + result;
  58. }
  59. }
  60. }
  61. }
  62. return result;
  63. };
  64. dojo.i18n.currency.parse = function (value, iso, locale, flags) {
  65. if (typeof flags.validate == "undefined") {
  66. flags.validate = true;
  67. }
  68. if (flags.validate && !dojo.i18n.number.isCurrency(value, iso, locale, flags)) {
  69. return Number.NaN;
  70. }
  71. var sign = (value.indexOf("-") != -1);
  72. var abs = abs.replace(/-/, "");
  73. var formatData = dojo.i18n.currency._mapToLocalizedFormatData(dojo.i18n.currency.FORMAT_TABLE, iso, locale);
  74. abs = abs.replace(new RegExp("\" + formatData.symbol), "");
  75. var number = dojo.i18n.number.parse(abs, locale, flags);
  76. if (sign) {
  77. number = number * -1;
  78. }
  79. return number;
  80. };
  81. dojo.i18n.currency.isCurrency = function (value, iso, locale, flags) {
  82. flags = (typeof flags == "object") ? flags : {};
  83. var numberFormatData = dojo.i18n.number._mapToLocalizedFormatData(dojo.i18n.number.FORMAT_TABLE, locale);
  84. if (typeof flags.separator == "undefined") {
  85. flags.separator = numberFormatData[0];
  86. } else {
  87. if (dojo.lang.isArray(flags.separator) && flags.separator.length == 0) {
  88. flags.separator = [numberFormatData[0], ""];
  89. }
  90. }
  91. if (typeof flags.decimal == "undefined") {
  92. flags.decimal = numberFormatData[2];
  93. }
  94. if (typeof flags.groupSize == "undefined") {
  95. flags.groupSize = numberFormatData[3];
  96. }
  97. if (typeof flags.groupSize2 == "undefined") {
  98. flags.groupSize2 = numberFormatData[4];
  99. }
  100. var formatData = dojo.i18n.currency._mapToLocalizedFormatData(dojo.i18n.currency.FORMAT_TABLE, iso, locale);
  101. if (typeof flags.places == "undefined") {
  102. flags.places = formatData.places;
  103. }
  104. if (typeof flags.places == "undefined") {
  105. flags.places = 2;
  106. }
  107. if (typeof flags.symbol == "undefined") {
  108. flags.symbol = formatData.symbol;
  109. } else {
  110. if (dojo.lang.isArray(flags.symbol) && flags.symbol.length == 0) {
  111. flags.symbol = [formatData.symbol, ""];
  112. }
  113. }
  114. if (typeof flags.placement == "undefined") {
  115. flags.placement = formatData.placement;
  116. }
  117. var re = new RegExp("^" + dojo.regexp.currency(flags) + "$");
  118. return re.test(value);
  119. };
  120. dojo.i18n.currency._mapToLocalizedFormatData = function (table, iso, locale) {
  121. var formatData = dojo.i18n.currency.FORMAT_TABLE[iso];
  122. if (!dojo.lang.isArray(formatData)) {
  123. return formatData;
  124. }
  125. return dojo.i18n.number._mapToLocalizedFormatData(formatData[0], locale);
  126. };
  127. (function () {
  128. var arabic = {symbol:"u062c", placement:"after", htmlSymbol:"?"};
  129. var euro = {symbol:"u20ac", placement:"before", adjSpace:"symbol", htmlSymbol:"&euro;"};
  130. var euroAfter = {symbol:"u20ac", placement:"after", htmlSymbol:"&euro;"};
  131. dojo.i18n.currency.FORMAT_TABLE = {AED:{symbol:"u062c", placement:"after"}, ARS:{symbol:"$", signPlacement:"after"}, ATS:{symbol:"u20ac", adjSpace:"number", signPlacement:"after", htmlSymbol:"&euro;"}, AUD:{symbol:"$"}, BOB:{symbol:"$b"}, BRL:{symbol:"R$", adjSpace:"symbol"}, BEF:euroAfter, BHD:arabic, CAD:[{"*":{symbol:"$"}, "fr-ca":{symbol:"$", placement:"after", signPlacement:"around"}}], CHF:{symbol:"CHF", adjSpace:"symbol", signPlacement:"after"}, CLP:{symbol:"$"}, COP:{symbol:"$", signPlacement:"around"}, CNY:{symbol:"xa5", htmlSymbol:"&yen;"}, CRC:{symbol:"u20a1", signPlacement:"after", htmlSymbol:"?"}, CZK:{symbol:"Kc", adjSpace:"symbol", signPlacement:"after"}, DEM:euroAfter, DKK:{symbol:"kr.", adjSpace:"symbol", signPlacement:"after"}, DOP:{symbol:"$"}, DZD:arabic, ECS:{symbol:"$", signPlacement:"after"}, EGP:arabic, ESP:euroAfter, EUR:euro, FIM:euroAfter, FRF:euroAfter, GBP:{symbol:"xa3", htmlSymbol:"&pound;"}, GRD:{symbol:"u20ac", signPlacement:"end", htmlSymbol:"&euro;"}, GTQ:{symbol:"Q", signPlacement:"after"}, HKD:{symbol:"HK$"}, HNL:{symbol:"L.", signPlacement:"end"}, HUF:{symbol:"Ft", placement:"after", adjSpace:"symbol"}, IEP:{symbol:"u20ac", htmlSymbol:"&euro;"}, ILS:{symbol:"u05e9"u05d7", placement:"after", htmlSymbol:"?"}, INR:{symbol:"Rs."}, ITL:{symbol:"u20ac", signPlacement:"after", htmlSymbol:"&euro;"}, JOD:arabic, JPY:{symbol:"xa5", places:0, htmlSymbol:"&yen;"}, KRW:{symbol:"u20a9", places:0, htmlSymbol:"?"}, KWD:arabic, LBP:arabic, LUF:euroAfter, MAD:arabic, MXN:{symbol:"$", signPlacement:"around"}, NIO:{symbol:"C$", adjSpace:"symbol", signPlacement:"after"}, NLG:{symbol:"u20ac", signPlacement:"end", htmlSymbol:"&euro;"}, NOK:{symbol:"kr", adjSpace:"symbol", signPlacement:"after"}, NZD:{symbol:"$"}, OMR:arabic, PAB:{symbol:"B/", adjSpace:"symbol", signPlacement:"after"}, PEN:{symbol:"S/", signPlacement:"after"}, PLN:{symbol:"z", placement:"after"}, PTE:euroAfter, PYG:{symbol:"Gs.", signPlacement:"after"}, QAR:arabic, RUR:{symbol:"rub.", placement:"after"}, SAR:arabic, SEK:{symbol:"kr", placement:"after", adjSpace:"symbol"}, SGD:{symbol:"$"}, SVC:{symbol:"u20a1", signPlacement:"after", adjSpace:"symbol"}, SYP:arabic, TND:arabic, TRL:{symbol:"TL", placement:"after"}, TWD:{symbol:"NT$"}, USD:{symbol:"$"}, UYU:{symbol:"$U", signplacement:"after", adjSpace:"symbol"}, VEB:{symbol:"Bs", signplacement:"after", adjSpace:"symbol"}, YER:arabic, ZAR:{symbol:"R", signPlacement:"around"}};
  132. })();