2016-12-07 4 views

答えて

6

使用String#splitArray#mapArray#join方法などの出力を必要としています。


var str = "c:0.1|d:0.2"; 
 

 
console.log(
 
    str 
 
    // split string by delimitter `|` 
 
    .split('|') 
 
    // iterate and generate result string 
 
    .map(function(v) { 
 
    // split string based on `:` 
 
    var s = v.split(':') 
 
     // generate the string 
 
    return s[0] + ':' + (Number(s[1]) * 100) + "%" 
 
    }) 
 
    // join them back to the format 
 
    .join() 
 
)
また String#replace capturing group regexを持つメソッドとコールバック関数を使用することができます。

var str = "c:0.1|d:0.2"; 
 

 
console.log(
 
    str.replace(/\b([a-z]:)(0\.\d{1,2})(\|?)/gi, function(m, m1, m2, m3) { 
 
    return m1 + 
 
     (Number(m2) * 100) + // calculate the percentage value 
 
     (m3 ? "%," : "%") // based on the captured value put `,` 
 
    }) 
 
)

Regex explanation here.

+1

ありがとうございますO(∩_∩)O –

1

それはあなたが単純な論理、後にテイク値をサブストリングの使用を使用することができ、角度の問題ではありません:10またはそれぞれとして値を取得するために100を掛け。

関連する問題