<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language=javascript>
<!--
function Arabia_to_Chinese(number)
{
var i = 0;
var Mum = number;
for(i=Num.length-1;i>=0;i--)
{
Num = Num.replace(",","")//替换tomoney()中的“,”
Num = Num.replace(" ","")//替换tomoney()中的空格
}
Num = Num.replace("¥","")//替换掉可能出现的¥字符
if(isNaN(Num))
{//验证输入的字符是否为数字
alert("请检查小写金额是否正确");
return;
}
//---字符处理完毕,开始转换,转换采用前后两部分分别转换---//
var part = String(Num).split(".");
var newchar = "";
//小数点前进行转化
for(i=part[0].length-1;i>=0;i--)
{
if(part[0].length > 10)
{
alert("位数过大,无法计算");return "";
}//若数量超过拾亿单位,提示
var tmpnewchar = ""
var perchar = part[0].charAt(i);
switch(perchar)
{
case "0":
tmpnewchar="零" + tmpnewchar;
return document.write(tmpnewchar);
break;
case "1":
tmpnewchar="壹" + tmpnewchar;
return tmpnewchar;
case "2":
tmpnewchar="贰" + tmpnewchar;
return tmpnewchar;
}
}
}
-->
</script>
</head>
<body><script language="javascript">
Arabia_to_Chinese(0);
</script>
</body>
</html>
测试什么都没显示,求指教哪里写错了?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language=javascript>
<!--
function Arabia_to_Chinese(number)
{
var i = 0;
var Mum = number;
for(i=Num.length-1;i>=0;i--)
{
Num = Num.replace(",","")//替换tomoney()中的“,”
Num = Num.replace(" ","")//替换tomoney()中的空格
}
Num = Num.replace("¥","")//替换掉可能出现的¥字符
if(isNaN(Num))
{//验证输入的字符是否为数字
alert("请检查小写金额是否正确");
return;
}
//---字符处理完毕,开始转换,转换采用前后两部分分别转换---//
var part = String(Num).split(".");
var newchar = "";
//小数点前进行转化
for(i=part[0].length-1;i>=0;i--)
{
if(part[0].length > 10)
{
alert("位数过大,无法计算");return "";
}//若数量超过拾亿单位,提示
var tmpnewchar = ""
var perchar = part[0].charAt(i);
switch(perchar)
{
case "0":
tmpnewchar="零" + tmpnewchar;
return document.write(tmpnewchar);
break;
case "1":
tmpnewchar="壹" + tmpnewchar;
return tmpnewchar;
case "2":
tmpnewchar="贰" + tmpnewchar;
return tmpnewchar;
}
}
}
-->
</script>
</head>
<body><script language="javascript">
Arabia_to_Chinese(0);
</script>
</body>
</html>
测试什么都没显示,求指教哪里写错了?
解决方案 »
- 表单禁止提交后,再允许提交,无法进入后台代码的问题
- 除了<iframe>,还有其它的网页嵌套的标签吗?
- asp.net 中 怎么用javascript 读取 listbox 或者 dropdownlist 里的项
- 不知道为什么数组的之值发生了变化
- javascript移动对象问题
- 怎样使confirm里显示的内容换行
- 帮忙看一段代码(不长)
- css的classname,如何用JS取得ID的classname?
- 超级问题?
- 求教关于js连续点击事件但最终只触发一次应该怎么写
- 如何写JS来改变FCKeditor编辑器输入框中的内容呢?在线等,急用。。
- C#写的ActiveX插件在ExtJS面板里闪动的问题。求解答啊...
var Num = number.toString();//变量名称错了并且要转为string
var c = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
var p = ["分","角","元","拾","百","千","万","拾","百","千","亿","拾","百","千"];
var temp = (/^(0|[1-9])\d*(\.\d+)?$/).test(n)? n : null;
var i = -1,result = null;
if(temp) {
temp = parseFloat(temp).toFixed(2);
i = (/\.\d+$/).test(temp)? -1 : 1;
result = temp.toString().replace(/\./g, "").split("").reverse().join("").replace(/\d/g, function(a) {i++; return p[i] + c[a]}).split("").reverse().join("").replace(/零(千|百|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/(千|百|拾)零(元|万|亿)/g,"$1$2").replace(/(亿零)万/g, "$1").replace(/(万零)元/g, "$1").replace(/(零)+/g, "零").replace(/(亿)零(元)/g, "$1$2").replace(/(零角)*零分$/g, "整");
}
return result;
}
alert(parseChinese(1234567.89));
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language=javascript>
<!--
function Arabia_to_Chinese(number)
{
var i = 0;
var Mum = number;
for(i=Num.length-1;i>=0;i--)
{
Num = Num.replace(",","")//替换tomoney()中的“,”
Num = Num.replace(" ","")//替换tomoney()中的空格
}
Num = Num.replace("¥","")//替换掉可能出现的¥字符
if(isNaN(Num))
{//验证输入的字符是否为数字
alert("请检查小写金额是否正确");
return;
}
//---字符处理完毕,开始转换,转换采用前后两部分分别转换---//
var part = String(Num).split(".");
var newchar = "";
//小数点前进行转化
for(i=part[0].length-1;i>=0;i--)
{
if(part[0].length > 10)
{
alert("位数过大,无法计算");return "";
}//若数量超过拾亿单位,提示
var tmpnewchar = ""
var perchar = part[0].charAt(i);
switch(perchar)
{
case "0":
tmpnewchar="零" + tmpnewchar;
return document.write(tmpnewchar);
break;
case "1":
tmpnewchar="壹" + tmpnewchar;
return tmpnewchar;
case "2":
tmpnewchar="贰" + tmpnewchar;
return tmpnewchar;
}
}
}
-->
</script>
</head>
<body>
<div id="result"></div>
<script language="javascript">
document.getElementById('result').innerHTML = Arabia_to_Chinese(0);
</script>
</body>
</html>
var money = window.money = function (m) {
this._orgMoney = m;
}
money.prototype = {
//验证是否为合法的money
checkInvalidMoney: function () {
var m = this._orgMoney;
if (m == null
|| m === undefined) {
return false;
}
//parseFloat().toString();
m = m.toString();
m = m.replace(/[^\-\.\d]/g, "");
return !isNaN(m);
},
//将money转换为标准的decimal数据
toDecimal: function () {
if (this.checkInvalidMoney()) {
var m = this._orgMoney.toString();
m = m.replace(/[^\-\.\d]/g, "");
return parseFloat(m);
}
return 0;
},
//将money转换为人民币大写形式
toUpperRMB: function () {
var m = this.toDecimal();
if (!this.checkInvalidMoney()) {
return "";
}
m = m.toString();
return toUpperRMB(m);
}
}; var DXSZ = "零壹贰叁肆伍陆柒捌玖",
DXDW = "毫厘分角元拾佰仟萬拾佰仟亿拾佰仟萬兆拾佰仟萬亿京拾佰仟萬亿兆垓",
SCDW = "元拾佰仟萬亿京兆垓"; //转换为人民币大写
function toUpperRMB(money) {
var result = "",//转化后的结果
m = money,
isNegative = /^\-/.test(m),//是否是负数
isFloat = /\./.test(m);//是否是小数;
m = m.replace(/^\-/, "");//去掉负号,将数据变为正数
var arr = m.split('.');
var integer = arr[0];//整数部分
result = toUpperInteger(integer);
if (isFloat) {
result += toUpperFloat(arr[1], parseInt(integer) != 0 ? true : false);
} else {
if (result == "") {
result = "零元";
}
result += "整";
}
if (isNegative) {
result = "负" + result;
}
return result;
}
//将整数部分转为人民币大写
function toUpperInteger(integer) {
var v = integer,
m = parseInt(v);
if (m == 0) {
return "";
}
var currCap = "", //当前金额
capResult = "", //结果金额
currentUnit = "",//当前单位
resultUnit = "", //结果单位
prevChar = -1, //上一位的值
currChar = 0, //当前位的值
posIndex = 4; //位置索引,从"元"开始
for (var i = v.length - 1; i >= 0; i--) {
currChar = parseInt(v.substr(i, 1));
if (posIndex > 30)
{
//已超出最大精度"垓"。注:可以将30改成22,使之精确到兆亿就足够了
break;
}
else if (currChar != 0) {
currCap = DXSZ.substr(currChar, 1) + DXDW.substr(posIndex, 1);
} else {
//防止转换后出现多余的零,例如:3000020
switch (posIndex) {
case 4: currCap = "元"; break;
case 8: currCap = "萬"; break;
case 12: currCap = "亿"; break;
case 17: currCap = "兆"; break;
case 23: currCap = "京"; break;
case 30: currCap = "垓"; break;
default: break;
}
if (prevChar != 0) {
if (currCap != "") {
if (currCap != "元") {
currCap += "零";
}
}
else {
currCap = "零";
}
}
}
//对结果进行容错处理
if (capResult.Length > 0) {
resultUnit = capResult.substr(0, 1);
currentUnit = DXDW.substr(posIndex, 1);
if (SCDW.indexOf(resultUnit) > 0) {
if (SCDW.indexOf(currentUnit) > SCDW.indexOf(resultUnit)) {
capResult = capResult.substr(1);
}
}
}
capResult = currCap + capResult;
prevChar = currChar;
posIndex += 1;
currCap = "";
}
return capResult;
}
//将小数部分转为人民币大写
function toUpperFloat(value,addZero) {
var v = value,
m = parseInt(value);
if (m == 0) {
return "";
}
var currCap = "",
capResult = "",
prevChar = addZero ? -1 : 0,
currChar = 0,
posIndex = 3;
for (var i = 0; i < v.length; i++) {
currChar = parseInt(v.substr(i, 1));
if (currChar != 0) {
currCap = DXSZ.substr(currChar, 1) + DXDW.substr(posIndex, 1);
} else {
if (parseInt(v.substr(i)) == 0) {
break;
} else if (prevChar != 0) {
currCap = "零";
}
}
capResult += currCap;
prevChar = currChar;
posIndex -= 1;
currCap = "";
}
return capResult;
}})();var s = "-12,124.56";
var m = new money(s);
document.writeln(m.toUpperRMB());