Javascript 从现有字符串创建字符串,其中每个字符都用*表示,只有空格用空格表示
我想从现有字符串生成一个新字符串。Javascript 从现有字符串创建字符串,其中每个字符都用*表示,只有空格用空格表示,javascript,jquery,Javascript,Jquery,我想从现有字符串生成一个新字符串。javascript在新生成的字符串中,除“”(空格)外,所有字符都将由“*”表示。 例如,如果现有字符串为 “隐藏我” 然后,将生成新的生成字符串 “******” 我试过这样做,但不起作用 function hiddenData() { var size = word.length; for (var i = 0; i <= size; i++) { if (word[i] == ' ') { hiddenStr[i] = '
javascript
在新生成的字符串中,除“”(空格)外,所有字符都将由“*”表示。
例如,如果现有字符串为
“隐藏我”
然后,将生成新的生成字符串
“******”
我试过这样做,但不起作用
function hiddenData()
{
var size = word.length;
for (var i = 0; i <= size; i++)
{
if (word[i] == ' ') {
hiddenStr[i] = ' ';
}
else
{
hiddenStr[i] = '_';
}
}
hiddenStr[i] = '\0';
}
函数hiddenData()
{
变量大小=单词长度;
对于(var i=0;i使用正则表达式
alert(word.replace(/[^ ]/g, '*'));
使用正则表达式
alert(word.replace(/[^ ]/g, '*'));
使用replace()
和正则表达式
var str=word.replace(/[^ ]/g, '*');
使用replace()
和正则表达式
var str=word.replace(/[^ ]/g, '*');
该代码有两个主要问题。1.您的for
循环的条件不正确,它应该是i
;当i==size
时,您将跳过字符串的最后一个字符并得到错误。2.变量i
仅在for
循环的范围内,您不能在行中使用它之后:hiddenStr[i]='\0';
@AnthonyGrist JS中还没有块作用域变量(请参见let
关键字),i
完全可用。访问太大的i
不会出错,它只会返回未定义的。你的函数应该接收word
作为参数,并返回hiddenStr
作为结果,而不是神奇地改变一些全局变量。@Prinzhorn啊,你说得对。我太习惯于用h Java,出于某种原因,今天决定JavaScript以同样的方式工作……该代码有两个主要问题。1.for
循环的条件不正确,它应该是i
;当i==size
时,您将跳过字符串的最后一个字符并得到一个错误。2.变量i
i它只在for
循环的作用域中,不能在其后的行中使用它:hiddenStr[i]='\0';
@AnthonyGrist JS中还没有块作用域变量(请参见let
关键字),i
完全可用。访问太大的i
不会出错,它只会返回未定义的。你的函数应该接收word
作为参数,并返回hiddenStr
作为结果,而不是神奇地改变一些全局变量。@Prinzhorn啊,你说得对。我太习惯于用Java,出于某种原因,今天决定JavaScript也以同样的方式工作。。。