我一直在研究一个将单词之间的空格更改为字符串" "
(空格)的函数。
例如,"Hello World. Hi there."
将成为"Hello(space)world.(space)Hi(space)there."
编辑:我正在尝试将其构建为一组特定的结构化英语,如下所示:
到目前为止,我能够提出这个问题。:
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。
答案 0 :(得分:3)
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)");
}