2013-08-01 105 views
2

我有一個函數,返回一個度量單位字符串,如: 桶[美國,液體] [BBL] 我想要一個正則表達式,與JavaScript字符串方法和要麼返回或修改字符串轉換成這兩個選項:JavaScript中的正則表達式來解析UM字符串

一)取得的縮寫(例如BBL)

b)得到完整的文件名(如桶[美國,液體])

的縮寫我已經嘗試過string.match(/\[(.*)\]/)[1],這適用於大多數其他商業銀行(例如Bank Cubi c米[BCm])但在我上面的例子中斷了,返回US,Liquid] [BBL。

在此先感謝

回答

1

我會使用

string.replace(/\[[^\[\]]*]$/, "") 

擺脫的縮寫,它周圍的括號。

要獲得縮寫使用

string.match(/\[[^\[\]]*]$/)[0] 

將返回被括號括起來的縮寫。然後使用

string.match(/\w+/)[0] 

從括號內得到縮寫。 (這假設您的縮寫由單詞字符(字母,數字和下劃線)組成)。如果您的縮寫包含其他字符,則此正則表達式將捕獲除括號外的所有內容。

string.match(/[^\[\]]+/)[0] 
+0

好答案。我覺得有一件事值得一提的是匹配方法返回一個數組,所以爲了得到字符串,你需要在語句中附加[0]。 – SwankSwashbucklers

+0

謝謝。我修正了這一點。 – connor

相關問題