2010-08-14 52 views
0

考慮以下字符串:如何從字符串中提取預定義的模式?

"<head></head><body>{"filesize":55312,"success":false,"msg":"incorrect-captcha-sol"}<div firebugversion="1.5.4" style="display: none;" id="_firebugConsole"></div></body>" 

我需要提取JSON字符串如下:

{"filesize":55312,"success":false,"msg":"incorrect-captcha-sol"} 

我應該怎樣做呢?

謝謝

回答

1
json = str.match(/(\{[^}]+\})/)[1]; 
+0

你好, 您可以告訴我,爲什麼我們要使用[1]在這裏? (/(\ {[^}] + \})/)[0]與str.match(/(\ {[^}] + \}相同,所以我調試代碼並且似乎 str.match )/)[1]? 謝謝 – q0987 2010-08-14 01:55:15

+0

是我的錯誤:P ...匹配函數返回匹配正則表達式的元素數組...因爲只有一個匹配它沒關係,您甚至可以刪除[] 你可能想看看這個http://www.w3schools.com/jsref/jsref_match.asp – pleasedontbelong 2010-08-14 02:06:24

+0

你好,我很高興, 很奇怪,返回數組的第一個元素包含與第二個元素相同的值。 當我搜索谷歌,我也看到很多[1]的例子。 這裏真的沒有線索。 謝謝 – q0987 2010-08-14 02:31:02

1
json = str.match(/([^<]+)/)[1];
1

正則表達式像

({[^}]+}) 

會工作。

使用RegExr試一試。

相關問題