2013-08-01 74 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

相关问题