2017-04-05 51 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>

相關問題