我在JavaScript測試正則表達式:爲什麼只有第一個正則表達式能正常工作?
var a = prompt("Input: ")
var t = /I AM (.*)|MY NAME IS (.*)/
if(t.test(a)) {
b = "HI " + t.exec(a)[1]
alert(b)
}
如果你輸入「我是BOB」你「HI BOB」,如果你輸入「我的名字是Bob」你「HI未定義」,當我在正則表達式中放置了「I AM(。*)」,然後導致未定義。
那麼,爲什麼這個正則表達式完全在if語句中工作,但只有exec()中的前半部分?我怎麼修復它?
PS(使用EXEC(一)[0],則返回 「HI我是Bob」)
所以'exec(a)[0]'工作?這不是回答你的問題嗎? – 2014-10-05 01:54:22
@Scott Hunter沒有,因爲它只是應該返回名稱和單詞嗨。 – 2014-10-05 02:01:13