接受JavaScript中的任何值?(正则表达式)



我正在创建一个非常简单的小游戏。

我想知道如何在以下代码中接受任何输入值…

if(answer === "My name is" + * + "and I am a Leo" ) {
  alert("Correct!")
}

根据我的理解,星号会接受用户输入的任何值。除此之外,脚本在我写完以上内容后会中断。

忘记添加JSFIddle

试试这个:

if (answer.substring(0, 10) == "My name is" && answer.slice(-14) == "and I am a Leo") {
    alert("Correct!");
}

substring(0, 10) ->获取前10个字符
Slice(-14) ->获取最后14个字符

这里也有一个正则表达式方法:

var matches = answer.match(/^My name is (.*) and I am a Leo$/);
if (matches != null) {
    alert("Correct!"); //use matches[1] to get the name
}

我假设您已经提示用户输入answer变量的值。

您可能想使用正则表达式:

if (answer.search(/^My name is.*and I am a Leo$/) === 0) {
    alert("Correct!");
}

看看这张小抄,看看不同的字符是什么意思。搜索方法返回匹配在字符串中的位置,失败时返回-1。在本例中,由于^匹配字符串的开头,它将在成功时始终返回0。

$匹配字符串的末尾,.*表示匹配除换行符以外的任何字符0次或0次以上(即任意次数)。

最新更新