javascript中的undercore替换

Underscore replace in javascript

本文关键字:替换 undercore 中的 javascript      更新时间:2023-09-26

我有一个字符串

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

我想用单个空格替换所有下划线。如何使用javascript实现这一点?

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

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

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, ' ');

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

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

完成