2017-04-05 90 views
1

我有一个< p>与123456789值在javascript中将123456789值转换为123.456.789的最简单方法是什么?

我需要将我的< p>值转换为123.456.789数字。 js中最简单的方法是什么?

+1

不清楚你想达到的目标。 123.456.789不是浮点数。你是否在尝试制作类似“123456789”的东西? –

+0

向我们展示您到目前为止所尝试的内容,以便我们可以帮助您改进代码。 – Zim84

+4

'123456789..toLocaleString('it')'(我选择'it'因为我知道'it'使用'.'表示千位分隔符,'''表示小数点“逗号”,所以会输出*字符串*'“ 123.456.789“'....'123456789..toLocaleString('en')''可以保证'”123,456,789“ - 如果你只想使用用户区域设置...使用他们的语言环境规则 –

回答

0

可以使用.match()RegExp/\d{3}(?=\d{6}|\d{3}|$)/g以匹配三个数字,随后六位数字,三个数字或字符串的结尾,链.join()到阵列由.match()与参数"."

var str = "123456789"; 
 
var res = str.match(/\d{3}(?=\d{6}|\d{3}|$)/g).join("."); 
 
console.log(res);

0

返回正则表达式结合html将足以让它工作得很漂亮:

$(".telephone").html(function() {; 
 
    return $(this).html().match(/[0-9]{3}/g).join('.'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p class="telephone">123456789</p>

+0

你是对的,但我们是(或者仅仅是我?)教给代码以最好的表现,所以选择通过jQuery时,它就像在“香草”中一样容易并不是“最优”一样。偏好,但从我看到的意见往往倾向于我所说的 – FrenchMajesty

3

尝试它使用正则表达式。 match()函数创建一个数组,join('.')将数组元素连接到所需的输出。

str = "123456789"; 
 

 
str = str.match(/.{1,3}/g).join('.') 
 

 
console.log(str)

+0

失败,如果字符串长度不是3的倍数,如'1234' – Thomas

+0

@Thomas _“失败,如果字符串长度不是3的倍数,如'1234'“_这不是现在问题的要求,不是?什么”失败“? – guest271314

+0

@托马斯我检查了”1234“。得到123.4。在这种情况下,这是否失败? – DroidNoob

2

尝试使用此功能。 对于任何数字和任何你所经过的分隔符都很有用。

function formatNumber(n, d) // n = number, d = delimeter 
 
    { 
 
     // round to 2 decimals if cents present 
 
     n = (Math.round(n * 100)/100).toString().split('.'); 
 
     var 
 
       myNum = n[0].toString(), 
 
       fmat = new Array(), 
 
       len = myNum.length, 
 
       i = 1, deci = (d == '.') ? '' : '.'; 
 
     for (i; i < len + 1; i++) 
 
      fmat[i] = myNum.charAt(i - 1); 
 

 
     fmat = fmat.reverse(); 
 
     for (i = 1; i < len; i++) 
 
     { 
 
      if (i % 3 == 0) { 
 
       fmat[i] += d; 
 
      } 
 
     } 
 
     var val = fmat.reverse().join('') + 
 
       (n[1] == null ? deci + '': 
 
         (deci + n[1]) 
 
         ); 
 
     return val; 
 
    } 
 

 
    var res = formatNumber(123456789,'.'); 
 
    console.log(res);

0

我有使用一些jQuery代码,请试试这个!希望这可以帮到你! :)

$('.number').text(function() { var txt = $(this).text(); return txt.replace(/\B(?=(?:\d{3})+(?!\d))/g, '.'); });

$(document).ready(function(){ 
 
    $('.number').text(function() { 
 
     var txt = $(this).text(); 
 
     return txt.replace(/\B(?=(?:\d{3})+(?!\d))/g, '.'); 
 
}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p class="number">123456789</p>

相关问题