首页 文章

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

提问于
浏览
0

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

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

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

  • 将结果的初始值设置为空字符串

  • 用于参数字符串中的每个索引

  • 如果该索引处的字符是空格

  • 追加'(space)'结果

  • 其他

  • 将该索引处的字符追加到结果中

  • 结束如果

  • 结束

  • 返回结果

这是我到目前为止能够提出的:

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 回答

  • 1

    使用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
    
    }
    
  • 3

    不,"nothing"不会发生 . 它很少 . 会发生什么情况是您在代码中遇到语法错误,因为您使用了 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)");
    }
    

相关问题