How to check that a uri string is valid
A well-formed URI implies conformance with certain RFCs. The local path in your example is not conformant with these. Read more in the IsWellFormedUriString
documentation.
A false result from that method does not imply that the Uri
class will not be able to parse the input. While the URI input might not be RFC conformant, it still can be a valid URI.
Update: And to answer your question - as the Uri documentation shows, there is a static method called TryCreate
that will attempt exactly what you want and return true or false (and the actual Uri
instance if true).
How to check whether a string is a valid HTTP URL?
Try this to validate HTTP URLs (uriName
is the URI you want to test):
Uri uriResult;
bool result = Uri.TryCreate(uriName, UriKind.Absolute, out uriResult)
&& uriResult.Scheme == Uri.UriSchemeHttp;
Or, if you want to accept both HTTP and HTTPS URLs as valid (per J0e3gan's comment):
Uri uriResult;
bool result = Uri.TryCreate(uriName, UriKind.Absolute, out uriResult)
&& (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps);
How to check whether a string is a valid url
I use this regex.
[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/=]*)
Here's the regex in action with this question's url:
So if a match is found you got yourself a URL. And if in the future you need to get parts of it it can do that for you too.
Check if a JavaScript string is a URL
A related question with an answer
Or this Regexp from Devshed:
function validURL(str) {
var pattern = new RegExp('^(https?:\\/\\/)?'+ // protocol
'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ // domain name
'((\\d{1,3}\\.){3}\\d{1,3}))'+ // OR ip (v4) address
'(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ // port and path
'(\\?[;&a-z\\d%_.~+=-]*)?'+ // query string
'(\\#[-a-z\\d_]*)?$','i'); // fragment locator
return !!pattern.test(str);
}
Dart / Flutter - Validating a string for URL
For some reason, the validators
package is requiring a pretty recent version of flutter's testing library rather than leaving it up to the application. Maybe there's a good reason for that (i.e. they're using a new feature).
The flutter engine internally requires a particular version of the flutter_test library (which is why it's generally a bad idea to specify a version of it). So to fix this you'll have to upgrade your flutter by running flutter upgrade
. If you're already at the most recent version of the channel you're in, you may have to run flutter channel dev
or flutter channel master
to switch to a channel (branch really) that's updated more often.
I run on the dev
branch/channel for the most part and while it very occasionally has problems, it doesn't happen a lot. I'd advise against using the master branch if possible though.
Validating Uri from String
public static bool IsValidUri(string uriString)
{
Uri uri;
if (!uriString.Contains("://")) uriString = "http://" + uriString;
if (Uri.TryCreate(uriString, UriKind.RelativeOrAbsolute, out uri))
{
if (Dns.GetHostAddresses(uri.DnsSafeHost).Length > 0)
{
return true;
}
}
return false;
}
How to verify if a String in Java is a valid URL?
You can try to create a java.net.URL
object out of it. If it is not a proper URL, a MalformedURLException
will be thrown.
Related Topics
Rijndael 256 Encrypt/Decrypt Between C# and PHP
Dependency Injection with a Static Logger, Static Helper Class
Use Decimal Values as Attribute Params in C#
Difference Between SQLdatareader.Read and SQLdatareader.Nextresult
Register Iauthenticationmanager with Simple Injector
C#: Referencing or Using .So Files in .Net Core on Linux
How to Get the Value of a Session Variable Inside a Static Method
Maxlength Attribute Not Generating Client-Side Validation Attributes
Monodevelop Failure "Unknown Msbuild Failure" on Linux
Should I Use Mkannotation, Mkannotationview or Mkpinannotation
Reading/Writing from Named Pipes Under Mono/Linux
Why Does a Float Variable Stop Incrementing at 16777216 in C#
Configure Multiple Database Entity Framework 6
Returning a String from Pinvoke
How to Get the Selected Item of a Combo Box to a String Variable in C#