2010-08-14 6 views
0

Étant donné la chaîne suivante:Comment extraire un motif prédéfini d'une chaîne?

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

je dois extraire la chaîne JSON comme suit:

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

Comment dois-je faire?

Merci

Répondre

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

Bonjour, vous pouvez me dire pourquoi nous devons utiliser [1] ici? Je débogue le code et il semble que str.match (/ (\ {[^}] + \}) /) [0] est identique à str.match (/ (\ {[^}] + \})/)[1]? Merci – q0987

+0

était mon erreur: P ... la fonction match renvoie un tableau des éléments qui correspondent à l'expression régulière ... car il n'y avait qu'un seul match, peu importe, vous pouvez même supprimer le [] vous pourriez vouloir regarder ceci http://www.w3schools.com/jsref/jsref_match.asp – pleasedontbelong

+0

Bonjour contentontbelong, il est étrange que le premier élément du tableau retourné contienne la même valeur que celle du deuxième élément. Lorsque je recherche sur Google, je vois aussi beaucoup d'exemples avec [1]. Vraiment pas d'indices ici. Merci – q0987

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

Une expression régulière comme

({[^}]+}) 

fonctionnerait.

Essayez-le en utilisant RegExr.

Questions connexes