HTMLString
是一个用 Swift 编写的库,允许您的程序在字符串中添加和删除 HTML 实体。
主要功能 | |
---|---|
为 ASCII 和 UTF-8/UTF-16 编码添加实体 | |
移除超过 2100 个命名的实体(如 & ) |
|
支持移除十进制和十六进制实体 | |
设计用于支持 Swift 扩展字符簇(→ 100% 表情符号验证通过) | |
全面单元测试 | |
快速 | |
已文档化 | |
与 Objective-C 兼容 |
支持的平台
此软件包需要 Swift 5 和 Xcode 12。
- iOS 9.0+
- macOS 10.10+
- tvOS 9.0+
- watchOS 2.0+
- Linux
安装
Swift Package Manager
请将以下行添加到您的 Package.swift
.Package(url: "https://github.com/alexaubry/HTMLString", from: "6.0.0")
CocoaPods
将此行添加到您的 Podfile
文件中
pod 'HTMLString', '~> 6.0'
Carthage
将此行添加到您的 Cartfile 文件中
github "alexaubry/HTMLString" ~> 6.0
使用方法
HTMLString
允许您向字符串中添加和删除 HTML 实体。
🔏 添加 HTML 实体(转义)
当一个字符不支持指定编码时,库将用十进制实体(由所有支持 HTML 4 及以后版本的浏览器支持)替换它。
例如,
&
字符将被替换为&
。
您可以选择 ASCII 或 Unicode 转义
- 使用
addingASCIIEntities
函数转义 ASCII 编码内容 - 使用
addingUnicodeEntities
函数转义与 Unicode 兼容的内容
💡 专业技巧:当您的支持 UTF-8 或 UTF-16 时,使用 Unicode 转义,因为它更快,产生的输出更紧凑。
示例
import HTMLString
let emoji = "My favorite emoji is 🙃"
let escapedEmoji = emoji.addingASCIIEntities() // "My favorite emoji is 🙃"
let noNeedToEscapeThatEmoji = emoji.addingUnicodeEntities() // "My favorite emoji is 🙃"
let snack = "Fish & Chips"
let escapedSnack = snack.addingASCIIEntities() // "Fish & Chips"
let weAlsoNeedToEscapeThisSnack = snack.addingUnicodeEntities() // "Fish & Chips"
📝 移除 HTML 实体(反转义)
要从一个字符串中删除所有 HTML 实体,请使用 removingHTMLEntities
函数。
示例
import HTMLString
let escapedEmoji = "My favorite emoji is 🙃"
let emoji = escapedEmoji.removingHTMLEntities() // "My favorite emoji is 🙃"
let escapedSnack = "Fish & Chips"
let snack = escapedSnack.removingHTMLEntities() // "Fish & Chips"
Objective-C API
通过Obj-C交互,你可以在Objective-C代码中导入并使用HTMLString
模块。
该库在NSString
类型上引入了一系列Objective-C特定API,作为类别。
-[NSString stringByAddingUnicodeEntities];
:用十进制HTML实体替换每个不符合HTML Unicode编码的字符。-[NSString stringByAddingASCIIEntities];
:用十进制HTML实体替换每个不符合HTML ASCII编码的字符。-[NSString stringByRemovingHTMLEntities];
:用对应的Unicode字符替换每个HTML实体。
转义示例
@import HTMLString;
NSString *emoji = @"My favorite emoji is 🙃";
NSString *escapedEmoji = [emoji stringByAddingASCIIEntities]; // "My favorite emoji is 🙃"
NSString *snack = @"Fish & Chips";
NSString *escapedSnack = [snack stringByAddingUnicodeEntities]; // "Fish & Chips"
反转义示例
@import HTMLString;
NSString *escapedEmoji = @"My favorite emoji is 🙃";
NSString *emoji = [escapedEmoji stringByRemovingHTMLEntities]; // "My favorite emoji is 🙃"
NSString *escapedSnack = @"Fish & Chips";
NSString *snack = [escapedSnack stringByRemovingHTMLEntities]; // "Fish & Chips"
作者
- Alexis Aubry-Akers, [email protected]
- 您可以在Twitter上找到我:@_alexaubry
许可
HTMLString可在MIT许可下使用。有关更多信息,请参阅LICENSE文件。