吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1020|回复: 20
收起左侧

[其他原创] 在线人民币大小写转换工具html代码

[复制链接]
小鸡眯眼 发表于 2024-8-29 14:12
本帖最后由 小鸡眯眼 于 2024-8-30 10:21 编辑

该工具旨在帮助用户方便地将人民币金额从小写转换为大写,只需输入金额,点击转换按钮,即可快速获得准确的大写表示。工具界面简洁友好,支持输入各种格式的大写金额,如“1356.78元”。经常报账的小伙伴可以用到,减少手动转换的错误。

前面的有错误,从新修改下 ,最大支持九位数,我试了下没啥问题了,大家可以测试下。
[Asm] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>人民币数字转大写</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            background-color: #f5f5f5;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }
        .container {
            background-color: #fff;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
            width: 90%;
            max-width: 400px;
            text-align: center;
        }
        input, button {
            padding: 10px;
            margin-top: 10px;
            width: 100%;
            border: 1px solid #ccc;
            border-radius: 4px;
            box-sizing: border-box; /* 使padding和border包含在width内 */
        }
        button {
            background-color: #28a745;
            color: white;
            border: none;
            cursor: pointer;
        }
        button:hover {
            background-color: #218838;
        }
        #result {
            margin-top: 20px;
            font-size: 1.2em;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>人民币数字转大写</h1>
        <input type="text" id="numberInput" placeholder="请输入十亿以内的数字" maxlength="10" />
        <button>转换</button>
        <div id="result"></div>
    </div>

    <script>
        const bigNum = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
        const bigUnit = ['', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿'];

        function convertToCapital() {
            let input = document.getElementById("numberInput").value.trim();
            let result = "";

            // 分离整数部分和小数部分
            let [integerPart, decimalPart] = input.split(".");
            integerPart = integerPart.replace(/,/g, ""); // 去掉逗号
            decimalPart = decimalPart ? decimalPart.slice(0, 2) : ""; // 只取前两位

            if (parseInt(integerPart) >= 1000000000) {
                result = "超出范围,最大支持十亿。";
            } else {
                // 转换整数部分
                if (parseInt(integerPart) === 0) {
                    result += "零元";
                } else {
                    let zeroCount = 0;
                    let unitIndex = integerPart.length - 1;

                    for (let i = 0; i < integerPart.length; i++) {
                        let digit = integerPart.charAt(i);
                        let pos = unitIndex - i;

                        if (digit !== '0') {
                            if (zeroCount > 0) {
                                result += bigNum[0]; // 添加零
                            }
                            result += bigNum[digit]; // 添加数字
                            if (pos % 4 !== 0) {
                                result += bigUnit[pos % 4]; // 添加单位
                            }
                            zeroCount = 0;
                        } else {
                            zeroCount++;
                        }

                        // 添加万或亿
                        if (pos === 4) {
                            result += bigUnit[4]; // 添加万
                        } else if (pos === 8) {
                            result += bigUnit[8]; // 添加亿
                        }
                    }
                    result += "元"; // 添加元
                }

                // 转换小数部分
                if (decimalPart) {
                    if (decimalPart.length > 0) {
                        result += bigNum[parseInt(decimalPart.charAt(0))] + "角";
                    }
                    if (decimalPart.length > 1) {
                        result += bigNum[parseInt(decimalPart.charAt(1))] + "分";
                    }
                } else {
                    result += "整"; // 没有小数部分时添加整
                }
            }

            document.getElementById("result").innerText = result;
        }
    </script>
</body>
</html>

测试的地址这个:http://diuta.com/app/rmb.html
微信截图_20240829141016.png

免费评分

参与人数 1吾爱币 +7 热心值 +1 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

liujkk 发表于 2024-8-29 15:59
其实不用那么麻烦
输入法中打    v+数字就可以了 选b选项
1234567890 壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾
lengbingling 发表于 2024-8-30 09:06

你发的代码与网址的代码还是有区别的.

本帖最后由 lengbingling 于 2024-8-30 09:08 编辑

[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>人民币数字转大写</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            background-color: #f5f5f5;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }
        .container {
            background-color: #fff;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
            width: 90%;
            max-width: 400px;
            text-align: center;
        }
        input, button {
            padding: 10px;
            margin-top: 10px;
            width: 100%;
            border: 1px solid #ccc;
            border-radius: 4px;
            box-sizing: border-box; /* 使padding和border包含在width内 */
        }
        button {
            background-color: #28a745;
            color: white;
            border: none;
            cursor: pointer;
        }
        button:hover {
            background-color: #218838;
        }
        #result {
            margin-top: 20px;
            font-size: 1.2em;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>人民币数字转大写</h1>
        <input type="text" id="numberInput" placeholder="请输入十亿以内的数字" maxlength="10" />
        <button>转换</button>
        <div id="result"></div>
    </div>

    <script>
        const bigNum = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
        const bigUnit = ['', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿'];

        function convertToCapital() {
            let input = document.getElementById("numberInput").value.trim();
            let result = "";

            // 分离整数部分和小数部分
            let [integerPart, decimalPart] = input.split(".");
            integerPart = integerPart.replace(/,/g, ""); // 去掉逗号
            decimalPart = decimalPart ? decimalPart.slice(0, 2) : ""; // 只取前两位

            if (parseInt(integerPart) >= 1000000000) {
                result = "超出范围,最大支持十亿。";
            } else {
                // 转换整数部分
                if (parseInt(integerPart) === 0) {
                    result += "零元";
                } else {
                    let zeroCount = 0;
                    let unitIndex = integerPart.length - 1;

                    for (let i = 0; i < integerPart.length; i++) {
                        let digit = integerPart.charAt(i);
                        let pos = unitIndex - i;

                        if (digit !== '0') {
                            if (zeroCount > 0) {
                                result += bigNum[0]; // 添加零
                            }
                            result += bigNum[digit]; // 添加数字
                            if (pos % 4 !== 0) {
                                result += bigUnit[pos % 4]; // 添加单位
                            }
                            zeroCount = 0;
                        } else {
                            zeroCount++;
                        }

                        // 添加万或亿
                        if (pos === 4) {
                            result += bigUnit[4]; // 添加万
                        } else if (pos === 8) {
                            result += bigUnit[8]; // 添加亿
                        }
                    }
                    result += "元"; // 添加元
                }

                // 转换小数部分
                if (decimalPart) {
                    if (decimalPart.length > 0) {
                        result += bigNum[parseInt(decimalPart.charAt(0))] + "角";
                    }
                    if (decimalPart.length > 1) {
                        result += bigNum[parseInt(decimalPart.charAt(1))] + "分";
                    }
                } else {
                    result += "整"; // 没有小数部分时添加整
                }
            }

            document.getElementById("result").innerText = result;
        }
    </script>
</body>
</html>
milu1123 发表于 2024-8-29 15:58
宁致远 发表于 2024-8-29 16:00
没有百千万 有啥用???
 楼主| 小鸡眯眼 发表于 2024-8-29 16:07
milu1123 发表于 2024-8-29 15:58
不够严谨,,,,没 个十百千万亿

我一般用不到那么大的
度娘灬魂手 发表于 2024-8-29 16:17
1356 应该是 壹仟叁佰伍陆
lengbingling 发表于 2024-8-29 20:29
我复制代码制作成的html文件,用浏览器打开,输入数字转换后没结果是怎么回事?
lengbingling 发表于 2024-8-30 08:32
测试地址的网页源代码能提供一下下载吗?
 楼主| 小鸡眯眼 发表于 2024-8-30 08:33
lengbingling 发表于 2024-8-29 20:29
我复制代码制作成的html文件,用浏览器打开,输入数字转换后没结果是怎么回事?

应该没问题啊,我放的演示链接就是一样的代码了
lengbingling 发表于 2024-8-30 08:35
小鸡眯眼 发表于 2024-8-30 08:33
应该没问题啊,我放的演示链接就是一样的代码了

测试地址的网页源代码用浏览器打开没问题,源代码能提供一下下载吗?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 12:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表