Javascript 为什么这个无错误和警告的语句不完整?

Javascript 为什么这个无错误和警告的语句不完整?,javascript,regex,debugging,firebug,Javascript,Regex,Debugging,Firebug,我正在制作一个简单的JavaScript,用于打开与假想招聘人员的对话。当我运行脚本时,它不会完成,但也不会抛出任何错误或警告。至少(!)它看起来并没有完成,但可能是我没有直接思考如何使用Firebug 代码如下: var str = prompt("How are you today?", "I'm quite alright, thank you") if (str.search(/\+alright\i|\+good\i|\+fine\i|\+alright\i/) != -1)

我正在制作一个简单的JavaScript,用于打开与假想招聘人员的对话。当我运行脚本时,它不会完成,但也不会抛出任何错误或警告。至少(!)它看起来并没有完成,但可能是我没有直接思考如何使用Firebug

代码如下:

var str = prompt("How are you today?", "I'm quite alright, thank you")
if (str.search(/\+alright\i|\+good\i|\+fine\i|\+alright\i/) != -1)                                                          {
  alert("I'm very glad to hear that! Me, I'm feeling freaky today!");                                               
} else if (str.search(/\+not/&&(/\+well|\+good/)||(/\+sad|\+down|\+blue/)) != -1)                                           {
  if (confirm("I'm sorry to hear that! Perhaps you'd like to get together and talk sometime?"))                         {
    var sadNumber = prompt("What's your phone number? (The one entered is mine, feel free to call me!)", "072-");
    if (sadNumber.search(/\D/) != -1) {
      alert("Sorry, I think there's something wrong with your number. Try entering it with just numbers please!");
      sadNumber = prompt("What's your phone number? (The one entered is mine, feel free to call me!)", "072-");
    } else {
      alert("That's fine! Let's move on with our job questions, shall we?");
    }
  } else if (alert("Wow! I didn't expect that answer! Truly interesting"));
}
尝试过的方法 这是Firebug中的外观:

在运行之后,由于某种原因,语句将在此处停止。按continue可中断并退出语句:

单步执行,语句继续运行,但跳过所有(I conbsider)重要部分。如您在此处所见,将跳过警报,并且语句将在else if行继续:

我猜我的regexp搜索(方法、模式或修饰符)是错误的,这就是语句中断的原因。尽管如此,我仍然觉得很奇怪,因为regexp错误通常会抛出错误或警告,但这个脚本不会返回任何错误或警告


有人知道为什么这个脚本会中断吗?有没有人有好的方法来调试不会抛出错误或警告的错误?

您的正则表达式是错误的

例如,
/\+好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好的\好\好\好\好\好\好\好\好\好\好\好\好\好\好\好\好\好\好\好\好\好\好\好\好\好\好\好\好\

您可能指的是
/ok | good | fine/i
,它搜索
ok
good
,或
fine
,不区分大小写。或者可能是
/\b(?:好的|好的|好的)\b/i
,它的作用是相同的,但希望单词的两边都有单词边界


你可以在不同的站点测试你的正则表达式,包括。

你还应该输入一些你使用的测试数据。嗯,我不知道你说的测试数据是什么意思,脚本是我唯一要测试的东西。你是说我在提示中尝试的输入?我没想过…非常感谢!这就是我所怀疑的。但是,更一般地说,(即使不包括regexp),当脚本中没有错误或警告,但语句的行为不符合预期时,该怎么办?@Spcaeyob:通常,您会检查正则表达式之类的内容,以了解它们的真正含义。我们过去必须通过查看文档直到意识到这一点,但现在有各种各样的工具可以帮助您。