字符串操作,用(空格)替换“”

时间:2011-09-13 19:31:41

标签: javascript html string html-manipulation

我一直在研究一个将单词之间的空格更改为字符串" "(空格)的函数。

例如,"Hello World. Hi there."将成为"Hello(space)world.(space)Hi(space)there."

编辑:我正在尝试将其构建为一组特定的结构化英语,如下所示:

  • 将结果的初始值设置为空字符串
  • 表示参数字符串
  • 中的每个索引
  • 如果该索引处的字符是空格,则
  • 将'(空格)'附加到结果
  • else
  • 将该索引处的字符附加到结果
  • 结束如果
  • 结束
  • 返回结果

到目前为止,我能够提出这个问题。:

function showSpaces(aString)
{
var word, letter;

word = aString
for var (count = 0; count < word.length; count = count + 1)

{
    letter = word.charAt(count);
    if (letter == " ")
    {
        return("(space)");
    }
    else
    {
        return(letter);
    }
}
}

每当我测试这个函数调用时,都没有任何反应:

<INPUT TYPE = "button" NAME = "showSpacesButton"  VALUE ="Show spaces in a string as (space)"
        ONCLICK = "window.alert(showSpaces('Space: the final frontier'));">

我现在刚开始使用JavaScript。任何帮助将不胜感激。

-Ross。

2 个答案:

答案 0 :(得分:3)

使用String.replace

function showSpaces(aString)
{
    return aString.replace(/ /g,'(space)');
}

编辑:让代码正常工作:

function showSpaces (aString)
{

    var word, letter,
        output = ""; // Add an output string

    word = aString;
    for (var count = 0; count < word.length; count = count + 1) // removed var after for

    {
        letter = word.charAt(count);
        if (letter == " ")
        {
            output += ("(space)"); // don't return, but build the string
        }
        else
        {
            output += (letter); // don't return, but build the string
        }
    }
    return output; // once the string has been build, return it

}

答案 1 :(得分:1)

不,&#34;没什么&#34;没有发生。它很少。发生的情况是您在代码中收到语法错误,因为您使用的是for var (而不是for (var

如果你修复了这个问题,你会注意到你只得到字符串中的第一个字符,因为你在循环中使用return而不是把一个字符串放在一起并在循环之后返回它。

你可以这样做:

function showSpaces(word) {
  var letter, result = "";
  for (var count = 0; count < word.length; count++) {
    letter = word.charAt(count);
    if (letter == " ") {
      result += "(space)";
    } else {
      result += letter;
    }
  }
  return result;
}

演示:http://jsfiddle.net/Guffa/pFkhs/

(注意:使用+=连接字符串对长字符串执行不良。)

您还可以使用正则表达式替换字符串:

function showSpaces(word) {
  return word.replace(/ /g, "(space)");
}