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