2012-02-15 36 views
12

He escrito expresiones regulares para validar URL que podría ser tanto comode expresiones regulares para la validación URL

google.com 

www.google.com 

http://www.google.com 

https://www.google.com 

he utilizado

Regex urlRx = new Regex(@"^(http|ftp|https|www)://([\w+?\.\w+])+([a-zA-Z0-9\~\!\@\#\$\%\^\&\*\(\)_\-\=\+\\\/\?\.\:\;\'\,]*)?$", RegexOptions.IgnoreCase); 

Funciona para http & https.It no funciona para Google ./com & www.google.com.

Ayúdame a solucionar esto.

Gracias

+0

He utilizado este uno (sin ftp) |^http (s)?: // [a-z0-9-] + (. [a-z0-9-] +) * (: [0-9] +)? (/. *)? $ | i – AjayR

+0

¿funciona para www.google.com? – PrateekSaluja

+0

Tenga cuidado, para casos simples, esto es simple, para casos complicados (por ejemplo, con una cadena de consulta o caracteres especiales en la url), no es simple ... – Benjol

Respuesta

46

hay necesidad de un mi humilde opinión expresiones regulares - Pruebe

Uri.IsWellFormedUriString(YourURLString, UriKind.RelativeOrAbsolute) 

Ver MSDN

+0

Gracias pero no funcionará si tengo texto con el enlace – PrateekSaluja

+0

@PrateekSaluja No estoy seguro de que entiendo - 'YourURLString' es solo cadena normal ... o tiene un texto normal con algunos enlaces en algún lugar en el medio de ella? – Yahia

+1

Por favor, pruebe este mensaje. "Hola, ¿cómo estás? Www.google.com" – PrateekSaluja

4

Pase el protocolo en un grupo opcional es decir, ()?:

^((http|ftp|https|www)://)?([\w+?\.\w+])+([a-zA-Z0-9\~\!\@\#\$\%\^\&\*\(\)_\-\=\+\\\/\?\.\:\;\'\,]*)?$ 
+1

'System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex (@"^((http | ftp | https | www): //)? ([\ W +? \. \ W +]) + ([a-zA-Z0-9 \ ~ \! \ @ \ # \ $ \% \^\ & \ * \ (\) _ \ - \ = \ + \\\/\? \. \: \; \ '\,] *)? $ ");' – mbrownnyc

4

I obtuve este código de jquery.validation (hice algunas ediciones)

bool isValid = (Regex.IsMatch (value, @ "(((([a-z] | \ d | - | | | | ~ | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF]) | (% [\ da-f] {2}) | [! \ $ & '() * +,; =] |:) * @)? (((\ d | [1-9] \ d | 1 \ d \ d | 2 [0-4] \ d | 25 [0-5]). (\ d | [1 -9] \ d | 1 \ d \ d | 2 [0-4] \ d | 25 [0-5]). (\ D | [1-9] \ d | 1 \ d \ d | 2 [0 -4] \ d | 25 [0-5]). (\ D | [1-9] \ d | 1 \ d \ d | 2 [0-4] \ d | 25 [0-5])) | ((([az] | \ d | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF]) | (([az] | \ d | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF]) ([az] | \ d | - |. | | ~ | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF]) ([az] | \ d | [ \ u00a0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF]))).) + (([az] | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF]) | (([ az] | [\ u00a0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF]) ([az] | \ d | - | | | | | | | | \ \ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0 - \ uFFEF]) ([az] | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF]))).?) (: \ d *)?) (/ ((([az] | \ d | - |. | | ~ | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF]) | (% [\ da-f] {2}) | [! \ $ & '() * +,; =] |: | @) + (/ (([az] | \ d | - |. | | ~ | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF]) | (% [\ da-f] {2}) | [! \ $ & '() * +,; =] |: | @) )? 0?)? (\ ((([Az] | \ d | - |.) | (% [\ da-f] {2}) | [! \ $ & '() * +,; =] |: | @) | [\ uE000- \ uF8FF] |/| \?) *) ? (# ((([az] | \ d | - |. | | ~ | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF]) | (% [\ da-f] {2 }) | [! \ $ & '() * +,; =] |: | @ | |/| \?) *)? $ ");

Estaba buscando casi un día entero y esto es lo mejor que encontré .. Estas son solo algunas muestras válidas:

  1. example.com
  2. example.com.ph
  3. www.example.com
  4. http://example.com
  5. https://example.com
  6. http://www.example.com
  7. ftp://example.com
  8. example.com/doc
  9. www.example.com/doc
  10. http://example.com/doc
  11. http://example.com/questions/12576252/convert-javascript-regex-to-c-sharp-regex-for-email-validation
  12. http://www.example.com/wpstyle/?p=364
  13. http://userid:[email protected]:8080
  14. https://www.example.com/foo/?bar=baz&inga=42&quux
  15. LDAP: //ad1.cc.uq.edu.ph
1
^(http|http(s)?://)?([\w-]+\.)+[\w-]+[.com|.in|.org]+(\[\?%&=]*)? 
Cuestiones relacionadas