Проверка для использования URL/домена Regex? (Направляющие)

Если у Вас есть код C, Вы хотите портировать на C++, Вы могли бы оставить любой malloc () вызовами в нем. Для любого нового кода C++ я рекомендовал бы использовать новый вместо этого.

27
задан dMix 14 July 2009 в 21:29
поделиться

5 ответов

Наткнулся на это:

validates_format_of :domain_name, :with => /^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/ix

FYI: Rubular - отличный ресурс для тестирования регулярных выражений Ruby

54
ответ дан 28 November 2019 в 04:03
поделиться

According to google, this one works nicely:

/^([a-z0-9]([-a-z0-9]*[a-z0-9])?\\.)+((a[cdefgilmnoqrstuwxz]|aero|arpa)|(b[abdefghijmnorstvwyz]|biz)|(c[acdfghiklmnorsuvxyz]|cat|com|coop)|d[ejkmoz]|(e[ceghrstu]|edu)|f[ijkmor]|(g[abdefghilmnpqrstuwy]|gov)|h[kmnrtu]|(i[delmnoqrst]|info|int)|(j[emop]|jobs)|k[eghimnprwyz]|l[abcikrstuvy]|(m[acdghklmnopqrstuvwxyz]|mil|mobi|museum)|(n[acefgilopruz]|name|net)|(om|org)|(p[aefghklmnrstwy]|pro)|qa|r[eouw]|s[abcdeghijklmnortvyz]|(t[cdfghjklmnoprtvwz]|travel)|u[agkmsyz]|v[aceginu]|w[fs]|y[etu]|z[amw])$/i

A bit lengthy...

It's case-insensitive...it doesn't look like your regexes are, but I don't know Ruby. Or maybe you capitalized them earlier.

1
ответ дан 28 November 2019 в 04:03
поделиться

Вот регулярное выражение, используемое henrik validates_url_format_of Rails валидатором :

REGEXP = %r{
  \A
  https?://                                                          # http:// or https://
  ([^\s:@]+:[^\s:@]*@)?                                              # optional username:pw@
  ( ((#{ALNUM}+\.)*xn---*)?#{ALNUM}+([-.]#{ALNUM}+)*\.[a-z]{2,6}\.? |  # domain (including Punycode/IDN)...
      #{IPv4_PART}(\.#{IPv4_PART}){3} )                              # or IPv4
  (:\d{1,5})?                                                        # optional port
  ([/?]\S*)?                                                         # optional /whatever or ?whatever
  \Z
}iux
1
ответ дан 28 November 2019 в 04:03
поделиться

Попробуйте настроить шаблон так, чтобы они начинались с ^ (символ "начинается с") и заканчивались на $ ("заканчивается на"), чтобы весь шаблон читал "строку, которая начинается с этого и затем заканчивается », иначе совпадение, скажем, по имени будет положительным совпадением, если шаблон вообще найден (т.е. имеет один единственный правильный символ).

0
ответ дан 28 November 2019 в 04:03
поделиться

Я взял то, что у вас было, и изменил его, чтобы я мог сделать http: // или https: // необязательно:

/^((http|https):\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/ix
2
ответ дан 28 November 2019 в 04:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: