Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 替换字符串jquery中的所有字符_Javascript_Jquery - Fatal编程技术网

Javascript 替换字符串jquery中的所有字符

Javascript 替换字符串jquery中的所有字符,javascript,jquery,Javascript,Jquery,如何使用replaceAll()函数将给定字符串中的所有字符替换为* var words=['marvel'、'computer'、'regex'、'pound']; var rand=words[Math.floor(Math.random()*words.length)]; //应将字符串中的所有字符替换为* $('#value').text(rand).replaceAll(rand,'*') .container{ 边框:1px纯黑; 填充物:5px; 保证金:5px; } 提交

如何使用
replaceAll()
函数将给定字符串中的所有字符替换为
*

var words=['marvel'、'computer'、'regex'、'pound'];
var rand=words[Math.floor(Math.random()*words.length)];
//应将字符串中的所有字符替换为*
$('#value').text(rand).replaceAll(rand,'*')
.container{
边框:1px纯黑;
填充物:5px;
保证金:5px;
}


提交
我不知道表单在做什么,也不知道您是如何填充
单词的。我提到这一点的原因是,如果数组是通过javascript函数或jquery对象填充的,那么数组中可能会有很多不需要的条目。您可能需要更改以下代码以忽略那些不需要的条目

此代码所做的是在
单词
数组中循环,并替换每个字符(regex
//g
),然后用星号(
*
)替换它

var words=['marvel'、'computer'、'regex'、'pound'];
var rand=words[Math.floor(Math.random()*words.length)];
//应将字符串中的所有字符替换为*
for(var i,大写){
单词[i]=单词[i]。替换(//g,“*”);
}
控制台日志(文字)
.container{
边框:1px纯黑;
填充物:5px;
保证金:5px;
}


提交
这是实现您想要的目标的一种方法

var words=['marvel'、'computer'、'regex'、'pound'];
var rand=words[Math.floor(Math.random()*words.length)];
//应将字符串中的所有字符替换为*
变量maskedRand=''
for(以兰特表示的变量字符){
maskedRand+='*'
}
$('#value').text(maskedRand)
.container{
边框:1px纯黑;
填充物:5px;
保证金:5px;
}


提交
如果不想使用正则表达式,可以使用
split()
将字符串转换为数组,然后使用
map()
根据条件修改每个元素

let replaceAll=(str,chars=[])=>{
返回str.split(“”)
.map(c=>c.trim()&&!chars.includes(c)?“*”:c)
.加入(“”);
}
log(replaceAll('lorem ipsum',['l','m']))

log(replaceAll('123 lorem ips',['2','i'])
我想你是对的。为什么不直接使用正则表达式呢?它实际上就是
//g
:您可以循环遍历字符串并逐个替换每个字符,类似于
array[string][counter]='*'
(因为你将字符串存储在一个数组中)@craig_h我正在编写一个简单的“hangman”程序,用*字符隐藏字符串。然后,用户输入一个字符,如果正确,字符串中的字符将重置回原始字符。regex非常适合这样的东西,我只是不太熟悉它。@MasterYoda啊,好吧。然后我将循环单词中的字符来创建掩码:替换来自数组的随机字符串中的字符,而不是数组中的每个单词,不是更好吗?不客气,若出于某种原因,您希望在第二个参数数组中传递数字,然后在字符串中查找,则还需要将该数字映射到字符串,如下所示