Erstellen Sie den kürzesten regulären Ausdruck, der ungefähr einer URL im Text entspricht, wenn er in JavaScript ausgeführt wird
Beispiel:
"some text exampley.com".match(/your regular expression goes here/);
Der reguläre Ausdruck muss
- Erfassen Sie alle gültigen URLs für http und https.
- Machen Sie sich keine Sorgen, dass die URL nicht mit Zeichenfolgen übereinstimmt, die nicht wirklich gültige URLs sind, wie z
super.awesome/cool
- gültig sein, wenn als JavaScript-Regex ausgeführt
Prüfkriterien:
Spiel:
- http://example.com
- http://example.com/
- http://example.com/super
- https://example.com/super
- example.com/super
- example.com
- example.com/su-per_duper/?add=yes&subtract=no
- example.com/archive/index.html
- twitter.com/#!/reply
- example.com/234ret2398oent/234nth
- codegolf.stackexchange.com/questions/464
- crazy.wow.really.example.com/?cat=nth%3E
- example-example.com
- example1.com
Nicht übereinstimmen:
- Beispiel
- Super cool
- Guten Morgen
- ich kann
- Hallo.
Hier ist ein Test, der helfen könnte, ein bisschen zu klären http://jsfiddle.net/MikeGrace/gsJyr/
Ich entschuldige mich für die Unklarheit, ich hatte nicht bemerkt, wie schrecklich übereinstimmende URLs waren.
\w
alles nutzen kann Erwarten Sie Rückverweise für verschiedene URL-Komponenten?
/:/
den regulären Ausdruck verwenden und gültige URIs abgleichen und nicht alle Ihre Beispiele in der Liste »Nicht übereinstimmen« abgleichen. Solange Sie diesen Weg gehen, ist es einfach die Frage: Was ist der kürzeste reguläre Ausdruck, der keinem der Beispielstrings entspricht, aber dennoch alle URIs abfängt.