【问题标题】:How to format numbers (or text) with jQuery?如何使用 jQuery 格式化数字(或文本)?
【发布时间】:2011-04-12 16:51:08
【问题描述】:

我想用 jQuery 修改(或格式化)数字的显示:每组由空格分隔的三位数字。

现在,当我使用 Php 发送数据时,格式会被保留。例如,以格式化的 IP 地址结束是很无聊的!

如何解决?

$(document).ready(function()
//$(function()
{
        $('h1, h2, h3, h4, h5, h6, p, li, dt, dd, caption, tr').each(function()
        {
            var $h = $(this);
            var html = $h.html();
            html = html.replace(/(\d{3-2})[\s\.]{0,1}(\d{3})/g, "$1 $2");
            html = html.replace(/(\d{1})[\s\.]{0,1}(\d{3})/g, "$1$2");
            // html
            $h.html(html);
    })

; });

感谢您的帮助。

问候,

文森特

【问题讨论】:

    标签: jquery regex replace


    【解决方案1】:

    如果我正确理解你的问题,你可以通过改变来实现你想要的:

     html = html.replace(/(\d{3-2})[\s\.]{0,1}(\d{3})/g, "$1 $2");
     html = html.replace(/(\d{1})[\s\.]{0,1}(\d{3})/g, "$1$2");
    

    进入:

     html = html.replace(/(\d{1-3})[\s\.]{0,1}(\d{3})/g, "$1 $2");
    

    从您的文本和代码中,我不太明白您为什么要执行 html.replace 两次,如果您的目标是将数字分成 3 位数字组并用空格分隔

    【讨论】:

    • 谢谢。你是对的!我的正则表达式非常愚蠢。所以,我想在每组之间放置空格或用空格替换点。我再举一个文本示例:html = html.replace(/([.]{3})/g, '…'); 三个点被替换为 html 实体 '…'。如何只替换显示而不替换源代码?谢谢。
    • @Vincent。对于替换点和空格以及将数字拆分为 3 位以上的数字,我写的表达式 html = html.replace(/(\d{1-3})[\s\.]{0,1}(\d{3})/g, "$1 $2"); 应该可以工作...在内容上做到这一点更复杂,而且可能更容易做到明智地使用 jquery 选择器 确保您只针对文本。你有输入文本的例子吗?
    • 谢谢。我只想按照排版规则显示仅显示文本。否则,对于数字,我从(stackoverflow.com/questions/2254185/…)找到了html = html.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1 ")。现在,我尝试改进它以便识别点。 :)
    • @Vincent。也许您正在寻找类似 @​​987654327@ 的内容(删除 或 . 取决于您使用的分隔符)。
    • 非常感谢。不好意思推迟了。我们的谈话让我看得更清楚。文森特
    猜你喜欢
    • 2012-05-08
    • 2013-10-24
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2018-12-17
    • 2021-12-21
    相关资源
    最近更新 更多