我如何找到一个句子中的所有空格并替换忽略它们

How can I find all of the spaces in a sentence and replace ignore them?

本文关键字:空格 替换 何找 句子 一个      更新时间:2023-09-26

我正在开发一款JavaScript Hangman游戏,我需要打印出与随机选择的单词长度相同的破折号。Ive做到了,但它也为句子中的空格打印了一个短划线,所以我怎么能忽略这些空格,只为句子中字母打印一个短划呢?谢谢你的帮助。

这是打印破折号的代码

for(var i = 0; i < sayings[randomSaying].length; i++)
{
   progress.innerHTML += "-";
}

随机变量

var sayings = [
    "cash on the nail",
    "charley horse",
    "foul play",
    "bury the hatchet",
    "hands down",
    "if the cap fits",
    "mumbo jumbo",
    "see red",
    "stone the crows",
    "thick and thin",
]
sayings.toString();
var randomSaying = Math.floor(Math.random()*sayings.length);

您不需要忽略空格,只需替换字母

progress.innerHTML = sayings[randomSaying].replace(/[a-z]+/g, "-");

单行代码,全部在一行中,比循环更高效;)

for循环中使用if语句。另外,不要使用innerHTML +=,因为它会导致浏览器不得不反复重新解析DOM。改为:

var hiddenSaying = "";
for(var i = 0; i < sayings[randomSaying].length; i++) {
    if (sayings[randomSaying].charAt(i) === ' ')
        hiddenSaying += " ";
    else
        hiddenSaying += "-";
}
progress.innerHTML = hiddenSaying;

不能肯定,但我认为你应该看看这个:

function randomSaying(sayingsArray){
  var p = sayingsArray[Math.floor(Math.random()*(sayingsArray.length+1))];
  var d = p.replace(/'s/g, '').replace(/./g, '&#8208;');
  return {phrase:p, dashes:d};
}
var obj = randomSaying(sayings);
// obj.phrase is phrase obj.dashes is dashes