| | |
| | | /// "".firstCharacterAsString -> nil |
| | | /// |
| | | var firstCharacterAsString: String? { |
| | | guard let first = first else { return nil } |
| | | guard let first else { return nil } |
| | | return String(first) |
| | | } |
| | | |
| | |
| | | /// "".lastCharacterAsString -> nil |
| | | /// |
| | | var lastCharacterAsString: String? { |
| | | guard let last = last else { return nil } |
| | | guard let last else { return nil } |
| | | return String(last) |
| | | } |
| | | |
| | |
| | | |
| | | #if os(iOS) || os(tvOS) |
| | | /// SwifterSwift: Check if the given string spelled correctly. |
| | | @MainActor |
| | | var isSpelledCorrectly: Bool { |
| | | let checker = UITextChecker() |
| | | let range = NSRange(startIndex..<endIndex, in: self) |
| | |
| | | /// |
| | | /// - Returns: The string in slug format. |
| | | func toSlug() -> String { |
| | | let lowercased = self.lowercased() |
| | | let lowercased = lowercased() |
| | | let latinized = lowercased.folding(options: .diacriticInsensitive, locale: Locale.current) |
| | | let withDashes = latinized.replacingOccurrences(of: " ", with: "-") |
| | | |
| | |
| | | /// "".firstCharacterUppercased() -> "" |
| | | /// |
| | | mutating func firstCharacterUppercased() { |
| | | guard let first = first else { return } |
| | | guard let first else { return } |
| | | self = String(first).uppercased() + dropFirst() |
| | | } |
| | | |
| | |
| | | /// - Parameter base64: base64 string. |
| | | init?(base64: String) { |
| | | guard let decodedData = Data(base64Encoded: base64) else { return nil } |
| | | guard let str = String(data: decodedData, encoding: .utf8) else { return nil } |
| | | self.init(str) |
| | | self.init(data: decodedData, encoding: .utf8) |
| | | } |
| | | #endif |
| | | } |