Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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/3/arrays/13.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 使用正则表达式比较switch语句中的数组元素_Javascript_Arrays_Regex - Fatal编程技术网

Javascript 使用正则表达式比较switch语句中的数组元素

Javascript 使用正则表达式比较switch语句中的数组元素,javascript,arrays,regex,Javascript,Arrays,Regex,我正在为我妻子的历史课制作一个基本的“刽子手”游戏。为此,我创建了一个类来创建字符串和数组格式的“gameWord” 在这个类中,我还想创建另一个面向玩家的数组,并根据玩家的输入进行更改。该数组应该为每个字母显示一个“*”,为每个空格显示一个“389;” 我曾尝试在if或switch语句中使用regex,但在gameWord数组中进行迭代,但没有成功。以下是我的一个基本尝试: class GameWord { constructor(word) { if ( word.length

我正在为我妻子的历史课制作一个基本的“刽子手”游戏。为此,我创建了一个类来创建字符串和数组格式的“gameWord”

在这个类中,我还想创建另一个面向玩家的数组,并根据玩家的输入进行更改。该数组应该为每个字母显示一个“*”,为每个空格显示一个“389;”

我曾尝试在if或switch语句中使用regex,但在gameWord数组中进行迭代,但没有成功。以下是我的一个基本尝试:

class GameWord {
  constructor(word) {
    if ( word.length <= 3 )
      return console.error('Error: Your word must be at least three letters long');

      this.word = word.replace(/[^a-zA-Z\s]/g, ''); 
      this.wordUserView = this.word.toProperCase( );
      this.wordSet = this.wordUserView.split('');

    const len = this.wordSet.length;
    var i = 0;

    this.wordSetHidden = [];
    for ( ; i <= len; i++) {
      if (this.wordSet[i] == /[a-zA-Z]/g) {
    this.wordSetHidden.push("*");
      }
    };
  }
};
类游戏词{
构造器(word){

if(word.length在这种情况下应该使用if语句

如果你想使用开关

var reAlpha = /[a-zA-Z]/;
var reSpace = /\s/;
var arr = ["W", "i", "n", "s", "t", "o", "n", " ", "1", 2, 0];
var newArr = [];

for ( var i = 0; i < arr.length; i++ ) {
  switch (true) {
    case reAlpha.test(arr[i]):
      newArr.push(arr[i] = "*");
    case reSpace.test(arr[i]):
      newArr.push(arr[i] = "_");
    break;
      default: console.log("No matches");
  };
}
var reAlpha=/[a-zA-Z]/;
var reSpace=/\s/;
var arr=[“W”、“i”、“n”、“s”、“t”、“o”、“n”、“1”、“2、0];
var newArr=[];
对于(变量i=0;i
如果

var reAlpha=/[a-zA-Z]/;
var reSpace=/\s/;
var arr=[“W”、“i”、“n”、“s”、“t”、“o”、“n”、“1”、“2、0];
var newArr=[];
对于(变量i=0;i
如果将单词作为字符串,可以使用带有regex的
replace
语句将字符替换为“*”,将空格替换为“\ux”:

var word = "Winston 120";
var wordToDisplay = word.replace(/[^\s]/g, '*').replace(/[\s]/g,'_');
如果将单词作为数组,则可以在循环中执行
If
语句:

var arr = ["W", "i", "n", "s", "t", "o", "n", " ", "1", 2, 0];
var newArr = [];

for ( var i = 0; i < arr.length; i++ ) {
  if(/[^\s]/.test(arr[i])){
    newArr.push(arr[i] = "*");
  } else {
    newArr.push(arr[i] = "_");
  }
}
var arr=[“W”、“i”、“n”、“s”、“t”、“o”、“n”、“1”、“2、0];
var newArr=[];
对于(变量i=0;i
您应该使用if语句。这很好。我不知道“test”方法。谢谢!是的,这非常有效。我修改了我的第一个代码示例以使用test,并将类推入wordSetHidden数组。谢谢!
var word = "Winston 120";
var wordToDisplay = word.replace(/[^\s]/g, '*').replace(/[\s]/g,'_');
var arr = ["W", "i", "n", "s", "t", "o", "n", " ", "1", 2, 0];
var newArr = [];

for ( var i = 0; i < arr.length; i++ ) {
  if(/[^\s]/.test(arr[i])){
    newArr.push(arr[i] = "*");
  } else {
    newArr.push(arr[i] = "_");
  }
}