65 votes

chaîne javascript sécurisée pour le nom de fichier

Vous recherchez une fonction regex/replace pour prendre une chaîne entrée par l'utilisateur, par exemple, "John Smith's Cool Page" et renvoyer une chaîne sécurisée pour le nom de fichier/l'url comme "john_smith_s_cool_page.html", ou quelque chose dans cette mesure.

20voto

speedplane Points 3828

Je sais que l'affiche originale demandait une expression régulière simple, cependant, la désinfection des noms de fichiers est plus impliquée, y compris la longueur des noms de fichiers, les noms de fichiers réservés et, bien sûr, les caractères réservés.

Jetez un œil au code dans node-sanitize-filename pour une solution plus robuste.

5voto

Adam D Points 820

Pour une gestion plus flexible et robuste des caractères Unicode, etc., vous pouvez utiliser le slugify en conjonction avec certaines regex pour supprimer les caractères d'URL dangereux

 const urlSafeFilename = slugify(filename, { remove: /"<>#%\{\}\|\\\^~\[\]`;\?:@=&/g });

Cela produit de jolis kebab-case filenemas dans votre URL et permet plus de caractères en dehors de la plage a-z0-9

1voto

Hemant Metalia Points 8325

Je pense que votre exigence est de remplacer les espaces blancs et les aphostophy `s par _ et d'ajouter le .html à la fin pour essayer de trouver une telle regex.

référer

http://www.expressions-régulières.info/javascriptexample.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X