Need regex for url pattern -


i need regex validate urls:

bad:

www.*.com  www.abc*  *.* 

good:

*abc.com *.com www.abc.com 

you use regex like:

^(www\.)?([a-za-z0-9\-]+?)(\.com)$ 

here's breakdown of how regex works:

^ matches begining of string

(www\.)? checks either nothing, or string www. literally.

[a-za-z0-9\-] matches letter (capital , lowercase), numbers , hyphen.

([a-za-z0-9\-]+?) matches above 1 or more times, , tries find smallest match.

(\.com) matches string .com literally.

$ matches end of string.

here's live preview of regex in action on regex101.com

this allow urls like:

  • www.google.com
  • www.apple.com
  • jojodmo.com
  • stackoverflow.com
  • 99-fake-websites.com

but not allow urls like:

  • mail.google.com
  • data.stackexchange.com
  • microsoft.net
  • redirect.affiliate.scam.hop.clickbank.gov

if allow subdomains other www (and more 1 of them), allow tlds other .com, above, use:

^(([\w\-]+\.)+?)?([a-za-z0-9\-]+?)(\.[a-za-z]{2,})$ 

this changes:

(www\.)? changed (([\w\-]+\.)+?)?.

  • [\w\-]+ matches letter (capital or lowercase), numbers, hyphens, , underscores 1 or more times.
  • \. matches character . literally.
  • ([\w\-]+\.)+? matches above 1 or more times, finding smallest match.
  • (([\w\-]+\.)+?)? makes above optional

(\.com) changed (\.[a-za-z]{2,})

  • \. matches character . literally
  • [a-za-z]{2,} matches letter, capital or lowercase, 2 or more times

if add above here's preview of new regex on regex101.com.


Comments

Popular posts from this blog

php - failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request -

java - How to filter a backspace keyboard input -

java - Show Soft Keyboard when EditText Appears -