2013-02-04 2 views
0

Je crée une petite bibliothèque pour analyser la documentation XML dans les fichiers Javascript dans le format suivant:documentation XML Javascript regex

/// <doc type="function" name="parse"> 
///  <summary>Parses javascript documentation</summary> 
///  <param name="js" type="string">Javascript input</param> 
/// </doc> 
var parse = function(js) { ... }; 

/// <doc type="string"> 
/// <summary>Holding the version of our library</summary> 
/// </doc> 
var VERSION = '0.0.1'; 

Je dois créer une expression régulière qui retourne le contenu entre les balises et. J'ai essayé l'expression régulière suivante, mais il a échoué:

var xmlComments = js.match(/ \/\/\/(\s)<doc(.*)>(.*)<\/doc>/gi /); 

Mais le match ne fonctionnait pas, j'espère que quelqu'un peut me aider avec cette expression régulière, merci.

+0

Comment invoquer 'parse'? En d'autres termes: comment obtenez-vous le commentaire doc de la source? –

Répondre

1

Si vous essayez d'obtenir le contenu entre les balises doc ouverture et de fermeture, vous pouvez utiliser

/<doc[^>]*>([\s\S]+?)<\/doc>/gi 

[\s\S] est tout caractère, y compris les nouvelles lignes (. ne correspondra pas à des sauts de ligne).

Par exemple

var xmlComments = [], 
    regex = /<doc[^>]*>([\s\S]+?)<\/doc>/gi, 
    match = regex.exec(js); 

while (match != null) { 
    xmlComments.push(match[1]); 
    match = regex.exec(js); 
} 

js est le fichier en tant que chaîne.