2010-10-07 5 views
2

Je crée un gestionnaire de fichiers avec jQuery. Les utilisateurs peuvent créer des dossiers et télécharger des fichiers. J'ai besoin d'une expression régulière (javascript) pour vérifier si le nom de dossier entré ou le nom de fichier téléchargé est enregistré sur le Web. (Caractères spéciaux ou espaces sont autorisés)RegExp pour les noms de fichiers et de dossiers propres

Le nom ne doit contenir que des valeurs alphanumériques (az, AZ, 0-9), soulignement (_) et des tirets (-)

+1

Avez-vous essayé quelque chose? C'est seulement bon pour vous si vous apprenez des expressions régulières et c'est une base. Cela devrait être un début: http://www.regular-expressions.info/ –

+0

Je crois fortement que c'est une FAQ! Il suffit de rechercher '[regex] + nom de fichier + valider ' – splash

+0

@Felix Kling merci pour le pourboire! Je n'ai pas le temps d'apprendre pour le moment mais je le ferai dans un avenir proche :) – Yens

Répondre

4

Cela semble assez simple:

/^[\w.-]+$/ 

Useful tutorial

+0

/^ [\ w \ -] + $ /: vous avez besoin d'une barre oblique inversée pour le trait d'union –

+0

@Fabrizio: non pas – SilentGhost

+0

@Fabrizio: Pas à la fin d'un groupe de capture. –

8

ne pas déranger votre visiteur, faites-le pour lui :)

var cleanName = function(name) { 
    name = name.replace(/\s+/gi, '-'); // Replace white space with dash 
    return name.replace(/[^a-zA-Z0-9\-]/gi, ''); // Strip any special charactere 
}; 

cleanName('C\'est être'); 
1
function clean(filename) { 
filename= filename.split(/[^a-zA-Z0-9\-\_\.]/gi).join('_'); 
return filename; 
}; 

filename=clean("Vis'it M'ic ro_pole!.pdf"); 
+0

Merci pour votre contribution. Ce serait bien si vous pouviez éditer votre réponse et ajouter une courte explication sur votre solution. Par exemple, quelle est la différence avec la solution fournie par @molokoloco? – honk

Questions connexes