diff options
author | teapotd <teapot404@gmail.com> | 2020-04-01 11:08:02 +0200 |
---|---|---|
committer | teapotd <teapot404@gmail.com> | 2020-04-02 10:16:46 +0200 |
commit | 779552ee7ddbbde1055c7202e16b9a13c3961988 (patch) | |
tree | f3dac563783cfeaa5ca69851c426d7e7b4dff9c3 /components/script/dom/bindings/str.rs | |
parent | e47e884cc738a5cb472416a4fbdd9d2a32a2385c (diff) | |
download | servo-779552ee7ddbbde1055c7202e16b9a13c3961988.tar.gz servo-779552ee7ddbbde1055c7202e16b9a13c3961988.zip |
Form constraints validation
Diffstat (limited to 'components/script/dom/bindings/str.rs')
-rw-r--r-- | components/script/dom/bindings/str.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/components/script/dom/bindings/str.rs b/components/script/dom/bindings/str.rs index 986554206b6..0905c157143 100644 --- a/components/script/dom/bindings/str.rs +++ b/components/script/dom/bindings/str.rs @@ -519,6 +519,28 @@ impl DOMString { // Step 7, 8, 9 Ok((date_tuple, time_tuple)) } + + /// https://html.spec.whatwg.org/multipage/#valid-e-mail-address + pub fn is_valid_email_address_string(&self) -> bool { + lazy_static! { + static ref RE: Regex = Regex::new(concat!( + r"^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?", + r"(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$" + )) + .unwrap(); + } + RE.is_match(&self.0) + } + + /// https://html.spec.whatwg.org/multipage/#valid-simple-colour + pub fn is_valid_simple_color_string(&self) -> bool { + let mut chars = self.0.chars(); + if self.0.len() == 7 && chars.next() == Some('#') { + chars.all(|c| c.is_digit(16)) + } else { + false + } + } } impl Borrow<str> for DOMString { |