J'ai besoin d'une regex pour briser une URL donnée en deux parties. p>
Part1 -> Le domaine (y compris le protocole [http ou https] si présent). p>
Part2 -> Le reste p>
Ainsi quelque chose comme ça: p>
Exemple 1 P>
Regex renvoie p>
Exemple 2 P>
Regex renvoie p>
Exemple 3 P>
Regex renvoie p>
Exemple 4 P>
Regex renvoie p>
let URL = "https://www.example.com/astdasd/123asdsd/sdasd?bar=1" code> p>
domaine = https://www.example.com code> p>
chemin restant = / asdasd / 123ASDSD / sdasd? bar = 1 code> p>
let URL = "www.example.com/astdasd/123asdsd/sdasd?bar=1" code> p>
domaine = www.example.com code> p>
chemin restant = / asdasd / 123ASDSD / sdasd? bar = 1 code> p>
let URL = "exemple/asdasd/123asdsd/sdasd?bar=1" code> p>
domaine = exemple.com code> p>
chemin restant = / asdasd / 123ASDSD / sdasd? bar = 1 code> p>
let URL = "http://example.com" code> p>
domaine = http://example.com code> p>
chemin restant = null code> p>
3 Réponses :
Je recommanderais d'utiliser le Interface URL au lieu de une regex. Bien qu'il ne traite pas d'exemple 2 et 3, il peut retirer tous les bits dont vous avez besoin.
du MDN: P>
L'interface URL est utilisée pour analyser, construire, normaliser et encoder les URL. Cela fonctionne en fournissant des propriétés qui vous permettent de lire et de modifier facilement les composants d'une URL. Vous créez normalement un nouvel objet URL en spécifiant l'URL en tant que chaîne lors de l'appelant son constructeur ou en fournissant une URL relative et une URL de base. Vous pouvez ensuite facilement lire les composants analysés de l'URL ou apporter des modifications à l'URL. P> blockQquote>
Exemple de vos besoins: P>
p>
let url = new URL("https://www.example.com/asdasd/123asdsd/sdasd?bar=1"); console.log("domain - " + url.origin); console.log("remaining path - " + url.pathname + url.search);
Utilisez URL code> .
p>
var url = "https://www.example.com/asdasd/123asdsd/sdasd?bar=1";
var matches = /(https?:\/\/.*?)([/$].*)/.exec(url);
var domain = matches[1];
var path = matches[2];
console.log(`domain = ${domain}`)
console.log(`remaining path = ${path}`) Voici la version JavaScript de panne. J'espère que cela aidera à comprendre
Devez-vous utiliser RegEx ou pouvez-vous utiliser quelque chose comme l'interface JS URL? développeur.mozilla.org/en-us/docs/web/api/ URL
Veuillez vous référer à Stackoverflow.com/a/569219