2017-03-16 1 views
0

私は浮動小数点数を持っています。私は、この構造では、プレーンJavaScriptで分割されたい1377.5:対応するクラスのFloatを分割するRegEx

<span class="digitLarge digit1">1</span> 
<span class="digitLarge digit3">3</span> 
<span class="digitLarge digit7">7</span> 
<span class="digitLarge digit7">7</span> 
<span class="digitPoint">.</span> 
<span class="digitSmall digit5">5</span> 
<span class="digitSmall digit0">0</span> 

私のような何かを試してみました:

parseFloat(myFloat).toFixed(2).replace(/(.*)/g,'$1');

しかし、ここで私は大とポイント=小の後にポイント=前で分割することはできません。私は確かに複数のRegExesを追加することができましたが、これは一種の不便です...

これを達成する最良の方法は何ですか?

ありがとうございました!

乾杯だけ使用しないのはなぜ トム

答えて

0

:その後

var number = 1377.50; 
var splitted = String(number).split("."); 
var beforePoint = splitted[0]; 
var afterPoint = splitted[0]; 

を:

for(var i=0; i<beforePoint.length; i++){ 
    var span = document.createElement("span"); 
    span.innerHTML=beforePoint[i]; 
    span.className="myClass"; 
    document.body.appendChild(span); 
} 

var pointSpan = document.createElemnt("span"); 
pointSpan.innerHTML="."; 
pointSpan.className="myClass"; 
document.body.appendChild(pointSpan); 

for(var i=0; i<afterPoint.length; i++){ 
    var span = document.createElement("span"); 
    span.innerHTML=afterPoint[i]; 
    span.className="myClass"; 
    document.body.appendChild(span); 
} 
0

あなたはちょうどこのように数と小数にfloatを分割することができます。

var a = 12345.67; 
 
var lg = a.toString().split(".")[0]; ///before 
 
var sm = a.toString().split(".")[1]; ///after 
 
alert("large: " + lg + " small: " + sm); 
 
//if you want to further split large 
 
alert(lg.split(""));

0

var myFloat = 1377.5, 
 
    html = '', 
 
    dotReached = false; 
 
    
 
myFloat = parseFloat(myFloat).toFixed(2); 
 

 
for (var i = 0, l = myFloat.length; i < l; i++) { 
 
    if ('.' === myFloat[i]) { 
 
     html += '<span class="digitPoint">.</span>'; 
 
     dotReached = true; 
 
     continue; 
 
    } 
 
    
 
    html += '<span class="' + (dotReached ? 'digitSmall' : 'digitLarge') + ' digit' + myFloat[i] + '">' + myFloat[i] + '</span>' 
 
    
 
} 
 

 
console.info(html);

+0

あなたの迅速なreplys、これらすべての作業ありがとうございましたが、smarberの答えは私のお気に入りの一つです。非常にきちんとした。 – Tom

+0

@Tomあなたはそれを受け入れるべきです – smarber

関連する問題