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啊,好吧。然后我将循环单词中的字符来创建掩码:替换来自数组的随机字符串中的字符,而不是数组中的每个单词,不是更好吗?不客气,若出于某种原因,您希望在第二个参数数组中传递数字,然后在字符串中查找,则还需要将该数字映射到字符串,如下所示