Ich versuche, einen regulären Ausdruck für eine URL zu finden, die dem W3C-Standard für den HTML5-Eingabetyp "url" (der in JavaScript verwendet wird) entspricht.
Siehe die W3C-Spezifikation der Anforderungen .
Zwei Möglichkeiten:
Ich habe diesen anderen StackOverflow Frage zu URL-Regexen , die vielversprechend aussieht:
Es gibt ein HTML5-Formularüberprüfungs-jQuery-Plugin - was angenommen wird Emulation der HTML5-Formularvalidierungsfunktion.
Dieses Skript verwendet den folgenden regulären Ausdruck:
%Vor% Ich weiß nichts über den Rest davon, aber auf den ersten Blick scheint es im besten Fall an dem Teil der Spezifikation, der möglicherweise von Leerzeichen umgeben ist, zu scheitern.Hat schon jemand anderes versucht, dies zu tun? Weiß jemand, wo ich eine konforme Regex finden könnte?
Ta, Robin.
Ich denke, ich habe die Antwort. Ich fand eine weitere StackOverflow-Frage , die scheinbar eine sehr gute RegEx für RFC 3987 enthielt. Ich kann nicht sicher sein, weil ich die Spezifikation nicht im Detail oder sonst irgendwie durchgegangen bin, aber ich denke, dass sie konform ist.
> Ich musste es ein wenig umgestalten, um in JavaScript zu arbeiten - ich entfernte die geschweiften Klammern aus den Zeichendeklarationen und ersetzte \x
durch \u
, aber jetzt bin ich mir ziemlich sicher, dass es funktioniert. Ich fügte auch \s*
am Anfang und am Ende hinzu, um diesen Teil der W3C-Spezifikation zu erfüllen.
Hier ist der letzte Regex. Wenn jemand es versucht und Probleme hat, oder denkt, dass es anders sein sollte, lassen Sie es mich wissen - ich wähle die genaueste Lösung, die hier möglich ist:
%Vor%Ihr Link liefert Ihre Antwort:
Eine Zeichenfolge ist eine gültige URL, die möglicherweise von Leerzeichen umgeben ist, wenn sie nach dem Entfernen von führenden und nachfolgenden Leerzeichen aus dieser URL eine gültige URL ist.
Sie könnten also den Leerraum manuell entfernen und dann Ihren regulären Ausdruck anwenden oder diesen verwenden:
%Vor%berücksichtigt führende und nachfolgende Leerzeichen
Tags und Links javascript regex html5 url uri