2016-04-07 54 views
0

我想通過JavaScript中的單個正則表達式匹配兩個案例的字符串。該字符串可以在給定的格式使用正則表達式匹配字符串返回null

//Singapore 
//Singapore (country) 

我曾嘗試以下正則表達式匹配字符串

"singapore".match(/(.*) (?:\((.*)\))?/) 
//null 
"singapore (country)".match(/(.*) (?:\((.*)\))?/) 
//["singapore (country)", "singapore", "country"] 

兩個我都想要的結果返回數組像第二種情況,其中的任何一個數組中的第三項可以是未定義/空的或根本不存在,但結果不應爲空。

這可以通過一個正則表達式來完成。如果是的話那麼是什麼在上面表達錯誤

+0

@JamesThorpe是的,它可以包含一個空間 –

回答

4

你需要把空間可選的組,因爲它不是在這裏只是"singapore"情況:/^([^\(]*)(?: \(([^\)]*)\))?$/

+0

感謝它的工作。 –

相關問題