返回介绍

PART Ⅰ : 容器云OPENSHIFT

PART Ⅱ:容器云 KUBERNETES

PART Ⅲ:持续集成与持续部署

PART Ⅴ:日志/监控/告警

PART Ⅵ:基础

PART Ⅶ:数据存储、处理

PART VIII:CODE

PART X:HACKINTOSH

PART XI:安全

JavaScript 常用工具函数

发布于 2024-06-08 21:16:45 字数 7394 浏览 0 评论 0 收藏 0

function getBytesSize(size) {
    if (!size)  return "";
    var num = 1024.00; //byte
    if (size < num)
        return size + "B";
    if (size < Math.pow(num, 2))
        return (size / num).toFixed(2) + "KB"; //kb
    if (size < Math.pow(num, 3))
        return (size / Math.pow(num, 2)).toFixed(2) + "MB"; //M
    if (size < Math.pow(num, 4))
        return (size / Math.pow(num, 3)).toFixed(2) + "G"; //G
    return (size / Math.pow(num, 4)).toFixed(2) + "T"; //T
}
function formatDuring(s){
    var days = parseInt(s / ( 60 * 60 * 24));
    var hours = parseInt((s % ( 60 * 60 * 24)) / ( 60 * 60));
    var minutes = parseInt((s % ( 60 * 60)) / 60);
    var seconds = (s % 60) ;
    return days + " 天 " + hours + " 小时 " + minutes + " 分钟 ";
}
<!DOCTYPE html>
<html>

<head>
    <link href="https://cdn.staticfile.org/twitter-bootstrap/5.1.3/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdn.staticfile.org/twitter-bootstrap/5.1.3/js/bootstrap.min.js"></script>
    <style type="text/css">
      .modal {
          display: none;
          position: fixed;
          z-index: 1;
          left: 0;
          top: 0;
          width: 100%;
          height: 100%;
          overflow: auto;
          color: white;
      }

      .modal-content {
          background-color: #0d6efd;
          margin: 15% auto;
          padding: 20px;
          border: 1px solid #888;
          width: 300px;
          text-align: center;
      }
    </style>
    <script type="text/javascript">
        function copyordernum(value) {
            var clipboardInput = document.createElement("input");
            clipboardInput.style.position = "absolute";
            clipboardInput.style.left = "-9999px";
            clipboardInput.style.top = "-9999px";
            clipboardInput.value = value;
            document.body.appendChild(clipboardInput);
            clipboardInput.select();
            document.execCommand("copy");
            document.body.removeChild(clipboardInput);
            var modalMessage = document.getElementById("modalMessage");
            modalMessage.textContent = "已复制到剪贴板: " + value;
            var modal = document.getElementById("myModal");
            modal.style.display = "block";
            setTimeout(function () {
                modal.style.display = "none";
            }, 900);
        }
    </script>
</head>
<body>
    <div id="his" class="container tab-pane active">
        <section id="hissection" class="container py-2">
            <table class="table table-hover table-bordered" id="histable">
                <thead>
                    <tr>
                        <th>ID</th>
                        <th>A</th>
                        <th>B</th>
                        <th>C</th>
                        <th>D</th>
                    </tr>
                </thead>
                <tbody id="histablebody">
                    <tr id="11111232131231211">
                        <td>1</td>
                        <td class="hide-string" data-value="11111232131231211" onclick="copyordernum('11111232131231211')">
                            1111***1211</td>
                        <td>111</td>
                        <td>2021-06-03 10:01:15</td>
                        <td>111</td>
                    </tr>
                </tbody>
            </table>
        </section>
    </div>
    <div id="myModal" class="modal">
        <div class="modal-content">
            <p id="modalMessage"></p>
        </div>
    </div>
</body>
</html>

方案:使用 BS5 的 CSS伪元素。

  • JS在生成表格元素时,将标签的 class 设置为class="hide-string";将原字符串赋予标签的 data-vaule属性;标签值则赋予隐藏字符。

  • JS 替换字符串前 4 位和后 4 位中间的字符为:`str.replace(/(^\d{4})(.)(\d{4}$)/, "$1*$3");`

<!DOCTYPE html>
<html>

<head>
    <link href="https://cdn.staticfile.org/twitter-bootstrap/5.1.3/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdn.staticfile.org/twitter-bootstrap/5.1.3/js/bootstrap.min.js"></script>
    <style type="text/css">
      .hide-string {
          position: relative;
      }
      .hide-string::after {
          content: attr(data-value);
          position: absolute;
          top: 0;
          left: 0;
          visibility: hidden;
          opacity: 0;
          background-color: #cccccc;
          padding: 5px;
          border: 1px solid #cccccc;
      }
      .hide-string:hover::after {
          visibility: visible;
          opacity: 1;
      }
    </style>
</head>
<body>
    <div id="his" class="container tab-pane active">
        <section id="hissection" class="container py-2">
            <table class="table table-hover table-bordered" id="histable">
                <thead>
                    <tr>
                        <th>ID</th>
                        <th>A</th>
                        <th>B</th>
                        <th>C</th>
                        <th>D</th>
                    </tr>
                </thead>
                <tbody id="histablebody">
                    <tr id="11111232131231211">
                        <td>1</td>
                        <td class="hide-string" data-value="11111232131231211" >
                            1111***1211</td>
                        <td>111</td>
                        <td>2021-06-03 10:01:15</td>
                        <td>111</td>
                    </tr>
                </tbody>
            </table>
        </section>
    </div>
</body>
</html>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文