я испытывал регулярное выражение в JavaScript:Почему только первое регулярное выражение работает правильно?
var a = prompt("Input: ")
var t = /I AM (.*)|MY NAME IS (.*)/
if(t.test(a)) {
b = "HI " + t.exec(a)[1]
alert(b)
}
И если вы вводите «Я ЕСМЬ ЛПП» вы получите «HI ЛПП», и если вы вводите «MY NAME IS BOB» вы получите «HI неопределенными», когда Я поставил «Я ЕСМЬ (. *)» Второй в регулярном выражении, и это также приведет к неопределенному.
Так почему же это регулярное выражение работает полностью в инструкции if, но только в первом тайме exec()? И как я могу это исправить?
Ps (используя Exec (а) [0] просто возвращает "HI MY NAME IS ЛПП")
Итак, 'exec (a) [0]' работал? Разве это не отвечает на ваш вопрос? –
@Scott Hunter Нет, потому что он должен только вернуть имя и слово hi. –