0
votes

JavaScript Regex pour casser une URL dans le domaine et le chemin

J'ai besoin d'une regex pour briser une URL donnée en deux parties.

Part1 -> Le domaine (y compris le protocole [http ou https] si présent).

Part2 -> Le reste

Ainsi quelque chose comme ça:

Exemple 1

let URL = "https://www.example.com/astdasd/123asdsd/sdasd?bar=1"

Regex renvoie

domaine = https://www.example.com

chemin restant = / asdasd / 123ASDSD / sdasd? bar = 1


Exemple 2

let URL = "www.example.com/astdasd/123asdsd/sdasd?bar=1"

Regex renvoie

domaine = www.example.com

chemin restant = / asdasd / 123ASDSD / sdasd? bar = 1


Exemple 3

let URL = "exemple/asdasd/123asdsd/sdasd?bar=1"

Regex renvoie

domaine = exemple.com

chemin restant = / asdasd / 123ASDSD / sdasd? bar = 1


Exemple 4

let URL = "http://example.com"

Regex renvoie

domaine = http://example.com

chemin restant = null


2 commentaires

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


3 Réponses :


1
votes

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);


0 commentaires

1
votes

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}`)


0 commentaires

0
votes

Voici la version JavaScript de panne. J'espère que cela aidera à comprendre xxx


0 commentaires