我使用j时出现问题。我有一个字符串=> "c:0.1|d:0.2"
,我需要像这样输出=> c:10%,d:20%
答案 0 :(得分:6)
使用String#split
,Array#map
和Array#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 `,`
})
)

答案 1 :(得分:1)
这不是角度问题,你可以使用简单的逻辑,在以下之后使用子字符串取值:并乘以100得到10或各自的值。