在javascript中替换下划线

时间:2014-09-13 20:08:57

标签: javascript

我有一个字符串

var string = "aa--'aa____\_____abccc".

我想用单个空格替换所有下划线。我怎么能用javascript做到这一点?

我不想使用任何正则表达式。请提出可行的方法。

2 个答案:

答案 0 :(得分:0)

var string = "aa--'aa    \     abccc".

完成

答案 1 :(得分:0)

您可以使用单个下划线替换所有重复的下划线,然后用空格替换所有下划线:

while (string.indexOf('__') != -1) {
  string = string.replace('__', '_');
}
while (string.indexOf('_') != -1) {
  string = string.replace('_', ' ');
}

另一种方法是遍历字符串并检查下划线并为组中的第一个下划线输出空格:

var result = '';
var space = false;
for (var i = 0; i < string.length; i++) {
  if (string[i] == '_') {
    if (!space) {
      result += ' ';
    }
    space = true;
  } else {
    result += string[i];
    space = false;
  }
}

使用正则表达式当然会更简单,更有效:

string = string.replace(/_+/g, ' ');

注意:如果您希望结果有反斜杠,那就不会发生。字符串中没有反斜杠,字符组合\_被解释为_。如果你想在字符串中加一个反斜杠,你可以在字符串文字中使用\\