2012-05-06 7 views
1

J'ai script simple, je veux mes images, puis de les diviser par des virgules. Cependant, je ne peux pas obtenir des liens d'image à l'intérieur de [gallery] étiquettes depuis que je reçois Uncaught SyntaxError: Invalid regular expression: missing /.JavaScript regex (manquant '/'), comment résoudre ce problème?

Quelqu'un peut-il s'il vous plaît jeter un oeil et me montrer où est le problème dans mon code RegEx?

HTML

<textarea> 
abc 
[gallery]/content/img/upload/img-2012.03.19.-634677727044317051.jpg, /content/img/upload/img-2012.03.19.-634677727046997204.jpg, /content/img/upload/img-2012.03.19.-634677727049487347.jpg, /content/img/upload/img-2012.03.19.-634677727051787478.jpg, /content/img/upload/img-2012.03.19.-634677727054137613.jpg[/gallery] 
def 
</textarea>​ 

JavaScript

$(function(){ 
    var text = $('textarea').val(); 
    var re = /\[gallery\]([^}]+)[/gallery\]/g; 
    var gallery = re.exec(text); 
    alert(gallery); 
});​ 

Fiddle: http://jsfiddle.net/BcFsg/

Répondre

1

voir le violon mis à jour ... Je ne sais pas pourquoi, mais il semble que vous ne devez pas échapper à la fermeture ]

EDIT: a donné la mauvaise sortie (tous entre crochets doivent être échappé) ... violon mis à jour EDIT 2: violon mis à jour pour alerter uniquement la liste des images

fiddle

+0

Hm, comment puis-je faire cracher le groupe 1 au lieu de 0 (je veux dire cracher ce qui est à l'intérieur de '[Galerie]' balises, sans balises elles-mêmes?) – sed

+0

see violon mis à jour –

+0

Merci, œuvres bien. – sed

1

Vous devez échapper à la / au milieu du regex par eriting \/.

2

Eh oui, le problème est que vous avez manqué un caractère d'échappement

var re = /\[gallery\]([^}]+)\[\/gallery\]/g; 
//       | 
//      [ HERE ] 

jsFiddle ici http://jsfiddle.net/BcFsg/1/

Questions connexes