String

extension String: WrapperCompatible
extension String: AnyModel
extension String: BasicType
extension String: StringParameter, AttributedStringParameter, DataParameter, URLParameter, URLRequestParameter
extension String: JSONSubscriptType

String+Language

  • 快速读取本地化语言

    Declaration

    Swift

    public var fw_localized: String { get }
  • 快速读取本地化语言,指定Bundle

    Declaration

    Swift

    public func fw_localized(_ bundle: Bundle?) -> String

    Parameters

    bundle

    语言所在Bundle,默认主Bundle

    Return Value

    本地化字符串

  • 快速读取本地化语言,指定表名和Bundle

    Declaration

    Swift

    public func fw_localized(_ table: String?, _ bundle: Bundle? = nil) -> String

    Parameters

    table

    本地化表名,默认Localizable.strings

    bundle

    语言所在Bundle,默认主Bundle

    Return Value

    本地化字符串

Foundation+AnyDecoder

  • Undocumented

    Declaration

    Swift

    func decoded<T>(using decoder: JSONDecoder = JSONDecoder(), as type: T.Type = T.self) throws -> T where T : Decodable

Codable+Extension

  • 安全字符串,不为nil

    Declaration

    Swift

    public static func fw_safeString(_ value: Any?) -> String
  • 转换为UTF8数据

    Declaration

    Swift

    public var fw_utf8Data: Data? { get }
  • 转换为URL

    Declaration

    Swift

    public var fw_url: URL? { get }
  • 转换为文件URL

    Declaration

    Swift

    public var fw_fileURL: URL { get }
  • 转换为NSNumber

    Declaration

    Swift

    public var fw_number: NSNumber? { get }

AnyParameter+Extension

  • Undocumented

    Declaration

    Swift

    public var stringValue: String { get }
  • Undocumented

    Declaration

    Swift

    public var attributedStringValue: NSAttributedString { get }
  • Undocumented

    Declaration

    Swift

    public var dataValue: Data { get }
  • Undocumented

    Declaration

    Swift

    public var urlValue: URL { get }
  • Undocumented

    Declaration

    Swift

    public var urlRequestValue: URLRequest { get }

Encode

  • Foundation对象编码为json字符串

    Declaration

    Swift

    public static func fw_jsonEncode(_ object: Any, options: JSONSerialization.WritingOptions = []) -> String?
  • json字符串解码为Foundation对象

    Declaration

    Swift

    public var fw_jsonDecode: Any? { get }
  • base64编码

    Declaration

    Swift

    public var fw_base64Encode: String? { get }
  • base64解码

    Declaration

    Swift

    public var fw_base64Decode: String? { get }
  • 计算长度,中文为1,英文为0.5,表情为2

    Declaration

    Swift

    public var fw_unicodeLength: Int { get }
  • 截取字符串,中文为1,英文为0.5,表情为2

    Declaration

    Swift

    public func fw_unicodeSubstring(_ length: Int) -> String
  • Unicode中文编码,将中文转换成Unicode字符串(如\u7E8C)

    Declaration

    Swift

    public var fw_unicodeEncode: String { get }
  • Unicode中文解码,将Unicode字符串(如\u7E8C)转换成中文

    Declaration

    Swift

    public var fw_unicodeDecode: String { get }
  • url参数编码,适用于query参数编码

    示例:http://test.com?id=我是中文 => http%3A%2F%2Ftest.com%3Fid%3D%E6%88%91%E6%98%AF%E4%B8%AD%E6%96%87

    Declaration

    Swift

    public var fw_urlEncodeComponent: String? { get }
  • url参数解码,适用于query参数解码

    示例:http%3A%2F%2Ftest.com%3Fid%3D%E6%88%91%E6%98%AF%E4%B8%AD%E6%96%87 => http://test.com?id=我是中文

    Declaration

    Swift

    public var fw_urlDecodeComponent: String? { get }
  • Declaration

    Swift

    public var fw_urlEncode: String? { get }
  • Declaration

    Swift

    public var fw_urlDecode: String? { get }
  • 字典编码为URL参数字符串

    Declaration

    Swift

    public static func fw_queryEncode(_ dict: [String : Any]) -> String
  • URL参数字符串解码为字典,支持完整URL

    Declaration

    Swift

    public var fw_queryDecode: [String : String] { get }
  • md5编码

    Declaration

    Swift

    public var fw_md5Encode: String { get }
  • 文件md5编码

    Declaration

    Swift

    public var fw_md5EncodeFile: String? { get }
  • 去掉首尾空白字符

    Declaration

    Swift

    public var fw_trimString: String { get }
  • 首字母大写

    Declaration

    Swift

    public var fw_ucfirstString: String { get }
  • 首字母小写

    Declaration

    Swift

    public var fw_lcfirstString: String { get }
  • 驼峰转下划线

    Declaration

    Swift

    public var fw_underlineString: String { get }
  • 下划线转驼峰

    Declaration

    Swift

    public var fw_camelString: String { get }
  • 中文转拼音

    Declaration

    Swift

    public var fw_pinyinString: String { get }
  • 中文转拼音并进行比较

    Declaration

    Swift

    public func fw_pinyinCompare(_ string: String) -> ComparisonResult
  • 是否包含Emoji表情

    Declaration

    Swift

    public var fw_containsEmoji: Bool { get }
  • 过滤JSON解码特殊字符

    兼容\uD800-\uDFFF引起JSON解码报错3840问题,不报错时无需调用 规则:只允许以\uD800-\uDBFF高位开头,紧跟\uDC00-\uDFFF低位;其他全不允许 参考:https://github.com/SBJson/SBJson/blob/trunk/Classes/SBJson5StreamTokeniser.m

    Declaration

    Swift

    public var fw_escapeJson: String { get }
  • 从指定位置截取子串

    Declaration

    Swift

    public func fw_substring(from index: Int) -> String
  • 截取子串到指定位置

    Declaration

    Swift

    public func fw_substring(to index: Int) -> String
  • 截取指定范围的子串

    Declaration

    Swift

    public func fw_substring(with range: NSRange) -> String
  • 截取指定范围的子串

    Declaration

    Swift

    public func fw_substring(with range: Range<Int>) -> String

Subscript

  • Undocumented

    Declaration

    Swift

    public var jsonKey: JSONKey { get }

String+Foundation

  • 将波浪线相对路径展开为绝对路径

    Declaration

    Swift

    public var fw_expandingTildePath: String { get }
  • 将绝对路径替换为波浪线相对路径

    Declaration

    Swift

    public var fw_abbreviatingTildePath: String { get }
  • 附加路径组件

    Declaration

    Swift

    public func fw_appendingPath(_ component: String) -> String
  • 附加路径组件数组

    Declaration

    Swift

    public func fw_appendingPath(_ components: [String]) -> String
  • 附加路径后缀,失败时返回空

    Declaration

    Swift

    public func fw_appendingPathExtension(_ ext: String) -> String
  • 计算多行字符串指定字体、指定属性在指定绘制区域内所占尺寸

    Declaration

    Swift

    public func fw_size(
        font: UIFont,
        drawSize: CGSize = CGSize(width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude),
        attributes: [NSAttributedString.Key: Any]? = nil
    ) -> CGSize
  • 格式化文件大小为".0K/.1M/.1G"

    Declaration

    Swift

    public static func fw_sizeString(_ aFileSize: UInt64) -> String
  • 是否匹配正则表达式,示例:^[a-zA-Z0-9_\u4e00-\u9fa5]{4,14}$

    Declaration

    Swift

    public func fw_matchesRegex(_ regex: String) -> Bool
  • 安全截取字符串。解决末尾半个Emoji问题(半个Emoji调UTF8String为NULL,导致MD5签名等失败)

    @param index 目标索引

    Declaration

    Swift

    public func fw_emojiSubstring(_ index: Int) -> String
  • 正则搜索子串

    @param regex 正则表达式

    Declaration

    Swift

    public func fw_regexSubstring(_ regex: String) -> String?
  • 正则替换字符串

    @param regex 正则表达式 @param string 替换模板,如"头部$1中部$2尾部“

    @return 替换后的字符串

    Declaration

    Swift

    public func fw_regexReplace(_ regex: String, string: String) -> String
  • 正则匹配回调

    Declaration

    Swift

    public func fw_regexMatches(_ regex: String, reverse: Bool = true, block: (NSRange) -> Void)

    Parameters

    regex

    正则表达式

    reverse

    匹配结果是否反向,默认true

    block

    回调句柄。正向时range从小到大,反向时从大至小,方便replace

  • 转义Html,如"a<“转义为"a<”

    Declaration

    Swift

    public var fw_escapeHtml: String { get }
  • 是否符合验证器

    Declaration

    Swift

    public func fw_isValid(_ validator: Validator<String>) -> Bool