使用.replace()将句点更改为下划线

时间:2012-05-24 19:47:31

标签: javascript jquery asp.net-mvc-3

我正在尝试使用javascript .replace()函数将字符串中的句点替换为下划线。例如,如果字符串为Project.Build,我希望它变为Project_Build。不幸的是,该方法目前没有这样做。这段时期仍然是一个时期。

这行代码正在修剪字符串中的所有空格。它也用下划线替换所有空间。这部分目前正在运作。

var rowID = $.trim(new String(status.teamCityProject).toLowerCase().replace(/ /g, "_").replace(/\./g, '_')) + status.id;

$("tr#" + rowID + " td.status").html(status.status).css({ 'color': statusColor, 'font-weight': 'bolder' })

3 个答案:

答案 0 :(得分:3)

您应该将修改后的字符串分配或更新到var并使用它。.replace不会更新原始文本。 (还删除了新的字符串)

var rowID = $.trim(status.teamCityProject.toLowerCase().replace(/ /g, "_").replace(/\./g, '_')) + status.id;

$("tr#" + rowID + " td.status").html(status.status).css({ 'color': statusColor, 'font-weight': 'bolder' })

DEMO

答案 1 :(得分:1)

你有什么works

但是,您可以将其压缩为单个replace(),并使用以下内容避免String。另请注意,您的原始帖子错过了)的结束trim()

$.trim((status.teamCityProject).toLowerCase().replace(/[ .]/g, "_") + status.id);

in action

答案 2 :(得分:1)

JavaScript字符串是不可变的。 .replace()会返回您必须执行某项操作的新字符串。

var newStatus = $.trim(status.teamCityProject
    .toLowerCase()
    .replace(/ /g, "_")
    .replace(/\./g, '_')) + status.id;
// do something with newStatus