use super::constants::{FLAGS, LEFT_BOUNDARY, RIGHT_BOUNDARY};
use crate::core::regex::JsRegex;
pub fn pattern_left_boundary() -> &'static str {
LEFT_BOUNDARY
}
pub fn left_boundary_inner_pattern(inner_pattern_string: &str) -> JsRegex {
JsRegex::new(inner_pattern_string, FLAGS)
}
pub fn left_right_boundary_inner_pattern(inner_pattern_string: &str) -> JsRegex {
JsRegex::new(&format!("{inner_pattern_string}{RIGHT_BOUNDARY}"), FLAGS)
}
pub fn inner_pattern_has_change() -> bool {
false
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn boundaries() {
assert_eq!(pattern_left_boundary(), r"([^\p{L}\p{N}_]|^)");
let p = left_right_boundary_inner_pattern("abc");
assert_eq!(p.source(), r"abc(?=[^\p{L}\p{N}_]|$)");
assert_eq!(p.flags(), "iu");
assert_eq!(left_boundary_inner_pattern("abc").source(), "abc");
assert!(!inner_pattern_has_change());
}
}