/ / help mit einem Regex-Code - PHP, Regex, URL

Hilfe mit einem Regex-Code - PHP, Regex, URL

Ich habe diesen Regex-Code

/^(https?://+[w-]+.[w-]+)/i

Es funktioniert, aber es gibt ein Problem Sie brauchen http:// in der URL für die Validierung, und was ich mache, der Benutzer will nicht http: // zu der URL hinzufügen, die sie nur haben wollen, wenn beispiel.com, wenn es möglich ist, ich brauche es zu arbeiten, Wetter hat es http: // oder nicht
Ich weiß nicht, wie ich meinen eigenen Regex machen kann, und ich habe gesucht, kann aber keinen finden, der tut, was ich brauche, es sei denn, ich sehe nicht einfach am richtigen Ort. (Google: P)

Antworten:

4 für die Antwort № 1

Don 't stören mit Regex. Verwenden Sie parse_url Funktion.


2 für die Antwort № 2

Sie können es einfach optional machen

/^((?:https?://+)?[w-]+.[w-]+)/i

Das (?:) um den Teil, den du nicht haben willst, ist eine nicht einfangende Gruppe, die ? danach macht es optional.

Ich bin mir nicht sicher, was das ist + nachdem der zweite Schrägstrich gut ist, heißt es mindestens eines der vorhergehenden Zeichen. Das heißt, es erlaubt auch Sachen wie http://////////.

Ich hoffe, Ihnen ist bewusst, dass diese Regex weit davon entfernt ist, gültige URLs zu finden.

Zum Beispiel wird es Sachen passen wie

http://////////------------.-

oder zumindest

http://N.O
^ after this position you can write what you want and it will match valid.

Hier auf Regexr Sie können sehen, was Ihre Regex übereinstimmt.

Siehe Purple Coders Antwort für eine wahrscheinlich bessere Lösung.


0 für die Antwort № 3

/^((https ?::+))?[w-]+.[w-]+)/i


0 für die Antwort № 4

Ich benutze das:

// Überprüfen Sie, ob die Zeichenfolge mindestens einen Punkt enthält.

var filterWebsite =  /^([a-zA-Z0-9:_.-/])+.([a-zA-Z0-9_.-/])+$/;