[问题] 去除括号

楼主: gn00742754 (西门猫)   2012-11-14 11:21:40
我在JS使用正规表示式
原始字串:
{abd : [ {id:value},{name:value} , {id:value},{name:value} ]}
目标字串:
[ {id:value},{name:value} , {id:value},{name:value} ]
我用了
/((^[^[]*\:))|(}$)/
来取代
可是结果却变成
[ {id:value},{name:value} , {id:value},{name:value} ] }
最后一个没被去掉
但是我在正规表示式的测试网站却是我想要的结果
不太明白为什么JS下不成功><
作者: n6333373   2011-01-14 13:07:00
可能是原始字串中的}后面还有东西?http://i.minus.com/ib1JC3RUvZMUQd.png
作者: CindyLinz (Cindy Wang)   2011-01-14 18:01:00
你 regex 结尾的 / 后面要加一个 g 才会多次取代呀
作者: qwertmn (抽筋)   2011-01-14 22:15:00
字串单纯的话..直接 \[.*\] 就抓的出来了看你写的pattern 要匹配到 }结尾的前一个字符- 0\[.*(?=\}) 酱试试看../((^[^[]*\:))|(}$)/ 我看起来也和你的目标字串没关系阿
楼主: gn00742754 (西门猫)   2011-01-15 00:30:00
抱歉,刚学regex,还不是很熟,谢谢大家的帮助~
作者: kilva (嗡嗡)   2011-01-18 11:36:00
在{ a : b }中要取出b,正规表示式可以写成/^\s*{.*?\:\s*(.*?)\s*}\s*$/"{a:b}".match(/^\s*{.*?\:\s*(.*?)\s*}\s*$/)[1] // b

Links booklink

Contact Us: admin [ a t ] ucptt.com