Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
std.uri
Encode and decode Uniform Resource Identifiers (URIs).
URIs are used in internet transfer protocols.
Valid URI characters consist of letters, digits,
and the characters ;/?:@&=+$,-.!~*'()
Reserved URI characters are ;/?:@&=+$,
Escape sequences consist of % followed by two hex digits.
License:
Authors:
Source: std/uri.d
- class URIException: object.Exception;
- This Exception is thrown if something goes wrong when encoding or decoding a URI.
- string decode(Char)(in Char[] encodedURI) if (isSomeChar!Char);
- Decodes the URI string encodedURI into a UTF-8 string and returns it. Escape sequences that resolve to reserved URI characters are not replaced. Escape sequences that resolve to the '#' character are not replaced.
- string decodeComponent(Char)(in Char[] encodedURIComponent) if (isSomeChar!Char);
- Decodes the URI string encodedURI into a UTF-8 string and returns it. All escape sequences are decoded.
- string encode(Char)(in Char[] uri) if (isSomeChar!Char);
- Encodes the UTF-8 string uri into a URI and returns that URI. Any character not a valid URI character is escaped. The '#' character is not escaped.
- string encodeComponent(Char)(in Char[] uriComponent) if (isSomeChar!Char);
- Encodes the UTF-8 string uriComponent into a URI and returns that URI. Any character not a letter, digit, or one of -.!~*'() is escaped.
- size_t uriLength(Char)(in Char[] s) if (isSomeChar!Char);
- Does string s[] start with a URL?Returns:-1 it does not len it does, and s[0..len] is the slice of s[] that is that URLExamples:
string s1 = "http://www.digitalmars.com/~fred/fredsRX.html#foo end!"; assert (uriLength(s1) == 49); string s2 = "no uri here"; assert (uriLength(s2) == -1);
- size_t emailLength(Char)(in Char[] s) if (isSomeChar!Char);
- Does string s[] start with an email address?Returns:-1 it does not len it does, and s[0..i] is the slice of s[] that is that email address
References: RFC2822
Examples:string s1 = "[email protected] with garbage added"; assert (emailLength(s1) == 32); string s2 = "no email address here"; assert (emailLength(s2) == -1);