помочь с кодом регулярного выражения - PullRequest
0 голосов
/ 21 июня 2011

У меня есть этот код регулярного выражения

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

, он работает, но есть проблема, которую вам НУЖНО http: // в URL для его проверки, и что я делаю, пользователь не захочетдобавьте http: // к URL, который они хотят иметь, например, example.com, если это возможно, мне нужно, чтобы он работал, если он имеет http: // или нетЯ не знаю, как сделать свое собственное регулярное выражение, и я искал, но не могу найти тот, который делает то, что мне нужно, если я просто не смотрю в нужном месте.(Google: P)

Ответы [ 4 ]

4 голосов
/ 21 июня 2011

Не беспокойтесь о регулярных выражениях. Используйте функцию parse_url .

2 голосов
/ 21 июня 2011

Вы можете просто сделать его необязательным

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

(?:) вокруг части, которую вы не хотите иметь, является группой без захвата, ? впоследствии делает ее необязательной.

Я не уверен, для чего подходит + после второй косой черты, он говорит по крайней мере об одном из предшествующих символов.Это означает, что он также допускает такие вещи, как http://////////.

Надеюсь, вы знаете, что это регулярное выражение далеко не соответствует действительным URL-адресам.

Например, оно будет соответствовать вещам вроде

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

или, по крайней мере,

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

Здесь, в Regexr , вы можете увидеть, что соответствует вашему регулярному выражению.

См. Ответ Purple Coder для, вероятно, лучшего решения.

0 голосов
/ 21 июня 2011

Я использую это:

// Проверить, что строка содержит хотя бы точку.

var filterWebsite =  /^([a-zA-Z0-9:_\.\-/])+\.([a-zA-Z0-9_\.\-/])+$/;
0 голосов
/ 21 июня 2011

/ ^ ((https:?. \ / \ / +) [\ Ш -] + [\ ш -] +) / я

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...