JavaScript函数 - 循环遍历字符串,为单个字符设置样式

时间:2014-08-22 19:36:31

标签: javascript string

我正在尝试通过遍历每个字符的函数传递一个数字字符串,如果它是或不是数字,则将每个字符包装在一个元素中。

var str = "$6,117,766.69";
var nonNumber = "$,.";

for (var i = 0; i < str.length; i++) {
    if (nonNumber.contains(str[i])) {
        $('body').append("<span class = 'thecolorYellow'>"+str[i]+"</span>");
    } else {
        $('body').append("<span class = 'thecolorBlue'>"+str[i]+"</span>");
    } 
}

我的问题是:我怎样才能将这个函数作为字符串返回而不是修改DOM?第二,我如何调整这个函数以确保从最终字符串中省略0-9之外的字符和三个非数字?

2 个答案:

答案 0 :(得分:0)

我建议你使用replace来生成标记,然后你可以一次追加它:

var html = str.replace(/./g, function(match) {
  var clas = isNaN(match) ? 'yellow' : 'blue'
  return '<span class="'+ clas +'">'+ match +'</span>'
})

$('body').append(html)

答案 1 :(得分:0)

    function getAmountAsNumber(dollarAmount)
    {
     return dollarAmount.replace(/\D/g,'');

    }

上述函数只返回输入字符串中的数字0-9,并确保省略所有非数字字符。