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.
Réponses
Trop de publicités?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.
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
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