15个版本
0.2.13 | 2022年12月23日 |
---|---|
0.2.12 | 2022年11月2日 |
0.2.11 | 2022年3月17日 |
0.2.9 | 2021年4月21日 |
0.1.0 | 2020年6月26日 |
#25 在 编码 中排名
269,729 每月下载量
在 573 个 (170 直接) 软件包中使用
140KB
4K SLoC
HTML Escape
此库用于编码/转义HTML中的特殊字符,以及解码/反转义HTML实体。
用法
编码
此软件包提供了一些 encode_*
函数来在不同情况下编码HTML文本。
例如,要在开始标签 <foo>
和结束标签 </foo>
之间放置文本,使用 encode_text
函数来转义文本中的每个 &
、<
和 >
。
assert_eq!("a > b && a < c", html_escape::encode_text("a > b && a < c"));
带有 _to_writer
、_to_vec
或 _to_string
后缀的函数对于生成HTML非常有用。
let mut html = String::from("<input value=");
assert_eq!("Hello world!", html_escape::encode_unquoted_attribute_to_string("Hello world!", &mut html));
html.push_str(" placeholder=\"");
assert_eq!("The default value is "Hello world!".", html_escape::encode_double_quoted_attribute_to_string("The default value is \"Hello world!\".", &mut html));
html.push_str("\"/><script>alert('");
assert_eq!(r"<script>\'s end tag is <\/script>", html_escape::encode_script_single_quoted_text_to_string("<script>'s end tag is </script>", &mut html));
html.push_str("');</script>");
assert_eq!("<input value=Hello world! placeholder=\"The default value is "Hello world!".\"/><script>alert(\'<script>\\\'s end tag is <\\/script>\');</script>", html);
解码
assert_eq!("Hello world!", html_escape::decode_html_entities("Hello world!"));
assert_eq!("alert('<script></script>);'", html_escape::decode_script(r"alert('<script><\/script>);'"));
无需Std
禁用默认功能以在不使用std的情况下编译此软件包。
[dependencies.html-escape]
version = "*"
default-features = false
基准测试
cargo bench
Crates.io
https://crates.io/crates/html-escape