2011-04-12 21 views
0

我想用jQuery修改(或格式化)数字的显示:每个由空格分隔的三位数字组。如何用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); 
    }) 

; });

感谢您的帮助。

问候,

文森特

回答

0

如果我明白你的问题正确,你可以实现你想要的改变:

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位数字分组的数字

+0

谢谢。你是对的!我的正则表达式非常愚蠢。所以,我想放置空间或用每个组的空间替换点。我给出了另一个文本例子:'html = html.replace(/([。] {3})/ g,'…');'三个点被html实体'…'取代。如何只替换显示而不是源代码?谢谢。 – Vincent 2011-04-12 17:40:55

+0

@Vincent。那么为了替换点和空格以及用3位以上的数字分割数字,我写了'html = html.replace(/(\ d {1-3})[\ s \。] {0,1}(\ d {3})/ g,“$ 1   $ 2”);'应该工作......只对内容执行**更复杂,并且可能更容易使用明智的_jquery选择器_确保您仅针对文本。你有没有输入文字的例子? – pconcepcion 2011-04-12 18:42:15

+1

Thx。我只想按照排版规则显示文本。否则,对于数字,我发现(html:html.replace(/(\ d)(?=(\ d \ d \ d)+(?!\ d))/ g,“$ 1” //stackoverflow.com/questions/2254185/regular-expression-for-formatting-numbers-in-javascript)。现在,我试图改进它,以便识别点。 :) – Vincent 2011-04-12 21:34:20