是否接受JavaScript中的任何值?(正则表达式?)
我正在创建一个非常简单的小游戏 我想知道如何接受以下代码中的任何输入值是否接受JavaScript中的任何值?(正则表达式?),javascript,regex,Javascript,Regex,我正在创建一个非常简单的小游戏 我想知道如何接受以下代码中的任何输入值 if(answer === "My name is" + * + "and I am a Leo" ) { alert("Correct!") } 据我所知,星号将接受用户输入的任何值。 除此之外,在我写了以上内容后,脚本就中断了 忘记添加请尝试以下操作: if (answer.substring(0, 10) == "My name is" && answer.slice(-14) == "and I
if(answer === "My name is" + * + "and I am a Leo" ) {
alert("Correct!")
}
据我所知,星号将接受用户输入的任何值。
除此之外,在我写了以上内容后,脚本就中断了
忘记添加请尝试以下操作:
if (answer.substring(0, 10) == "My name is" && answer.slice(-14) == "and I am a Leo") {
alert("Correct!");
}
子字符串(0,10)->获取前10个字符切片(-14)->获取最后14个字符 下面还有一种regex方法:
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
变量输入一个值
您可能希望使用regeular表达式:
if (answer.search(/^My name is.*and I am a Leo$/) === 0) {
alert("Correct!");
}
看看这个,看看不同的字符是什么意思。搜索方法返回匹配项在字符串中的位置,或在失败时返回-1。在这种情况下,由于^
匹配字符串的开头,因此在成功时它将始终返回0
$
匹配字符串的结尾,*
表示匹配除换行符以外的任何字符0次或更多次(即任意次数)。您将通配符与JavaScript混淆,*
在JavaScript中是用于乘法的。似乎您希望使用常规表达式。在我们能够正确帮助您之前,您可能应该显示更多的代码。@是否有用于此的字符?还是我必须创建另一个变量?@Mike一个擅长正则表达式的人会回答。。。还有其他有效的方法。为什么不使用test呢?你忘了锚定regexp,这就不那么令人困惑了。它没有抓住名称。这将是一个游戏,需要保存名称/以某种方式使用名称。谢谢-正则表达式方法非常有效,非常简单。不过,我想学习子字符串方法的逻辑。谢谢你向我解释。@Mike使用:if(/^我的名字是.*并且我是Leo$/.test(answer)