javascript - 使用正则表达式替换除了第一次出现的空白子串之外的所有内容

标签 javascript jquery regex

下面的语句运行良好:

$wb.upLinearLoad.append('<div>' + sprintf("%5s%8.1f to%7.1f%8.1f%6.0f%8.0f",sLinearSegName[i][j],fLinearPtBA[i][j],fLinearPtBA[i][j+1],fLen,fLinearPtPpi[i][j],fLinearSegMaxWt[i][j]).replace(/ /," &nbsp;") + '</div>');

但是,我现在只需要动态更改最后两个变量的颜色,因此我决定将它们包含在一个带有 class='wt' 的 span 中以控制它们的颜色。这给出:

$wb.upLinearLoad.append('<div>' + sprintf("%5s%8.1f to%7.1f%8.1f<span class='wt'>%6.0f%8.0f</span>",sLinearSegName[i][j],fLinearPtBA[i][j],fLinearPtBA[i][j+1],fLen,fLinearPtPpi[i][j],fLinearSegMaxWt[i][j]).replace(/ /," &nbsp;") + '</div>');

失败是因为 span 和 class 之间的空间被更改为  

我的正则表达式能力仅适用于示例,所以问题变成了如何将除第一个空格以外的所有空格更改为  

我们非常欢迎您提出任何建议,尤其是当您发现我的整个方法很糟糕时。

最佳答案

只是不要使用字符串来做。相反,使用 jQuery/DOM 操作。它不易出错且效率更高。

$wb.upLinearLoad.append(
    $('<div>').append(
        sprintf("%5s%8.1f to%7.1f%8.1f", sLinearSegName[i][j], fLinearPtBA[i][j], fLinearPtBA[i][j+1], fLen),
        $('<span>').addClass('wt').text(sprintf("%6.0f%8.0f</span>", fLinearPtPpi[i][j], fLinearSegMaxWt[i][j]))[0]
    )
);

关于javascript - 使用正则表达式替换除了第一次出现的空白子串之外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8596451/

相关文章:

c# - 从一个主字符串中获取不同的子字符串

javascript - 如果与 v-for 一起使用,则无法设置默认输入单选

javascript - 使用 onClick 调用 jquery 函数

javascript - JavaScript 工具提示的延迟淡出

使用 OR 的正则表达式模式

javascript - 放置 jquery cookie 作为年龄免责声明

javascript - 如何使用ajax请求刷新 map ?

javascript - 新浏览器是否以不同方式优化循环?

javascript - 如何修改 Elo 评级以获得更大的分差?

javascript - MMM dd yyyy 验证正则表达式?