diff --git a/components/utils/src/anchors.rs b/components/utils/src/anchors.rs
index 06af56b4..fe86e960 100644
--- a/components/utils/src/anchors.rs
+++ b/components/utils/src/anchors.rs
@@ -1,4 +1,5 @@
use libs::regex::Regex;
+use libs::regex::escape;
pub fn has_anchor_id(content: &str, anchor: &str) -> bool {
let checks = anchor_id_checks(anchor);
@@ -6,7 +7,8 @@ pub fn has_anchor_id(content: &str, anchor: &str) -> bool {
}
fn anchor_id_checks(anchor: &str) -> Regex {
- Regex::new(&format!(r#"\s(?i)(id|name) *= *("|')*{}("|'| |>)+"#, anchor)).unwrap()
+ Regex::new(&format!(r#"\s(?i)(id|name) *= *("|')*{}("|'| |>)+"#,
+ escape(anchor))).unwrap()
}
#[cfg(test)]
@@ -44,7 +46,11 @@ mod tests {
assert!(m(r#""#));
+ // Escaped Anchors
+ assert!(check("fred?george", r#""#));
+ assert!(check("fred.george", r#""#));
+
// Non matchers
- assert!(!m(r#""#))
+ assert!(!m(r#""#));
}
}