我刚刚注意到一个奇怪的 JS 行为导致了一个烦人的错误..
基本上,我在 if 语句中使用 RegExp 对象(.test() 方法)测试 str 。对于相同的测试字符串,如果在我的代码中我只有一个 if,则 regexp.test() 返回 true,它可以很好地进入 if。
问题是如果我有一个 else (我需要它),出于某种原因,对于相同的 str 测试,regexp.test() 返回 false 并转到 else ...
这是什么行为?
我已经进行了许多测试...
TL/DR:对于在同一个 RegExp 上测试的同一个字符串,如果只有一个 IF 语句,则 regexp.test() 返回 true,但如果我有一个 else,它返回 false。
some code
我忘了说所有单词都不会出现该错误..
在文本字段中输入单词“armoire”,然后按 Enter。这个 jsfiddle 有“else return false”,没有任何反应。
删除 searchDeeper 函数( if (regexp.test(tested)){ )中的“else return false”并再次进行测试。现在它进入 if 和 msgbox 弹出窗口。