Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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中的任何值?(正则表达式?)_Javascript_Regex - Fatal编程技术网

是否接受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)