2012-10-12 115 views
2

我想通过括号()内的javascript字符串值导出。正则表达式将字符匹配到括号中

例子作品: “?”

var a = "(test) (a b c)"; 
alert(a.match(/\([\s\S]+?\)/gi));//output: [(test),(a b c)] 

但在一些较旧的浏览器导致错误。

所以我这样做:

var a = "(test) (a b c)"; 
alert(a.match(/\([A-Za-z0-9\-_\t\r\n\s]+\)/gi)); 

但是这种方式不支持外国字符。因此,有必要使用\ S

我需要的解决方案\ S \ S和不使用信号。

回答

1

可以匹配非)字符:

/\([^)]+\)/ 
+0

完美(:感谢 –

1

这一个是更容易

"(test) (a b c)".match(/\([^\)]+\)/gi); // output: ["(test)", "(a b c)"] 
+0

“i” 是没有必要的。然而他的榜样帮助了我。 修正:“(test)(a b c)”。match(/ \([^ \)] + \)/ g);谢谢 –

+0

啊,@GuilhermeNascimento我只是从你的例子中复制,并没有摆脱它对不起:) – Rezigned

+0

真相是我责怪,不需要道歉,这是我的错。对不起,谢谢(: –

1

想到这会为你做它,不是吗?

([^)] *)

http://gskinner.com/RegExr/

+0

缺少“\”:修正:\\([^)] * \\),谢谢Jim,但我会用John的例子 –