Für z. Ersetzen Sie einen <strong>
Tag durch Fettschrift. Damit es als attributierter Text auf Label, Textfeld oder Textansicht angewendet werden kannWie ersetzt man ein HTML-Tag mit nsattribute in swift?
Antwort
extension NSAttributedString {
func replaceHTMLTag(tag: String, withAttributes attributes: [String: AnyObject]) -> NSAttributedString {
let openTag = "<\(tag)>"
let closeTag = "</\(tag)>"
let resultingText: NSMutableAttributedString = self.mutableCopy() as! NSMutableAttributedString
while true {
let plainString = resultingText.string as NSString
let openTagRange = plainString.range(of: openTag)
if openTagRange.length == 0 {
break
}
let affectedLocation = openTagRange.location + openTagRange.length
let searchRange = NSRange(location: affectedLocation, length: plainString.length - affectedLocation)
let closeTagRange = plainString.range(of: closeTag, options: NSString.CompareOptions.init(rawValue: 0), range: searchRange)
resultingText.setAttributes(attributes, range: NSRange(location: affectedLocation, length: closeTagRange.location - affectedLocation))
resultingText.deleteCharacters(in: closeTagRange)
resultingText.deleteCharacters(in: openTagRange)
}
return resultingText as NSAttributedString
}
}
Sie müssen die^und $ -Anker entfernen.
Das^bedeutet Start der Zeichenfolge und $ bedeutet Ende der Zeichenfolge (oder Zeile, abhängig von den Optionen). Deshalb funktioniert dein erstes Beispiel: In der ersten Testzeichenkette folgt dem Beginn des Strings wirklich dein Muster und endet damit.
In der zweiten Testzeichenfolge wird das Muster in der Mitte der Zeichenfolge gefunden, daher kann das^... nicht angewendet werden. Wenn Sie nur das^entfernen würden, würde das $ beim zweiten Auftreten der Registrierungsnummer gelten und die Ausgabe wäre mein Auto reg 1 - DD11 AAA mein Auto reg 2 - XX.
let myString = "my car reg 1 - DD11 AAA my car reg 2 - AA22 BBB"
let regex = try! NSRegularExpression(pattern: "([A-HK-PRSVWY][A-HJ-PR-Y])\\s?([0][2-9]|[1-9][0-9])\\s?[A-HJ-PR-Z]{3}", options: NSRegularExpressionOptions.CaseInsensitive)
let range = NSMakeRange(0, myString.characters.count)
let modString = regex.stringByReplacingMatchesInString(myString, options: [], range: range, withTemplate: "XX")
print(modString)
// Output: "my car reg 1 - XX my car reg 2 - XX"
diese Erweiterung Versuchen. Es konvertiert die HTML-Zeichenfolge in NSAttributtedString
. Ich wird auch das 0,75-Verhältnis angewandt aufgrund der Tatsache, dass die Standard-Konvertierung erhöht all die Schriftgröße
extension String {
func htmlAttributedString() -> NSAttributedString? {
guard let data = self.data(using: String.Encoding.utf16, allowLossyConversion: false) else { return nil }
guard let html = try? NSMutableAttributedString(
data: data,
options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],
documentAttributes: nil) else { return nil }
html.beginEditing()
html.enumerateAttribute(NSFontAttributeName, in: NSMakeRange(0, html.length), options: .init(rawValue: 0)) {
(value, range, stop) in
if let font = value as? UIFont {
let resizedFont = font.withSize(font.pointSize * 0.75)
html.addAttribute(NSFontAttributeName,
value: resizedFont,
range: range)
}
}
html.endEditing()
return html
}
}
- 1. Wie ersetzt man ein Verzeichnis mit einem Symlink mit Ansible?
- 2. Ersetzt String in Swift 2
- 3. Wie ersetzt man "\" mit str_replace() in PHP?
- 4. Wie ersetzt man Sonderzeichen?
- 5. Wie man Daten ersetzt?
- 6. Wie Höhe der nsattribute Zeichenfolge mit Zeilenabstand dynamisch berechnet
- 7. Wie ersetzt man Zeichenketten mit Javascript?
- 8. Wie ersetzt man einen String mit seinem Großbuchstaben mit NSRegularExpression in Swift?
- 9. ein [String: ANYOBJECT] zuweisen [String: ANYOBJECT] in Swift ersetzt
- 10. Wie ersetzt man ein Tabellenfeld durch ein anderes?
- 11. Wie ersetzt man AsyncTask Executor mit RxJavaHooks?
- 12. Wie ersetzt man Git Repo?
- 13. Wie erweitert man ein Array in Swift?
- 14. Wie ersetzt man ein einzelnes Zeichen in einer Zeichenfolge?
- 15. Wie man Methoden mit phpunit ersetzt
- 16. Wie ersetzt man Werte in einem Tensor?
- 17. Wie man durch & in Perl ersetzt?
- 18. Wie ersetzt man einen Teilstring mit einem Link (http) in swift 3?
- 19. Wie erstellt man ein NSMutableDictionary in Swift?
- 20. Wie ersetzt man alle Großbuchstaben mit Abstand?
- 21. Wie ersetzt man Text mit JavaScript?
- 22. Wie ersetzt man Zeichen in Bienenstock?
- 23. Java - Wie ersetzt man Dateiinhalte?
- 24. Wie ersetzt man Ausreißer Daten in Pandas?
- 25. Wie ersetzt man '& =' durch '= &' in Vim?
- 26. Wie ersetzt man * in package.json Datei
- 27. Wie ersetzt man Dezimal in Linux
- 28. Was ersetzt IndexPathForSelectedRow in Swift 3?
- 29. Wie erstellt man ein Array mit inkrementierten Werten in Swift?
- 30. Wie ersetzt man Werte in Excel?
ich folgende Fehlermeldung erhalten mit Xcode9 (Swift4): Kann nicht Wert vom Typ umwandeln ‚[String: ANYOBJECT]‘ zum erwarteten Argumenttyp '[NSAttributedStringKey: Any]?' Gelöst mit: https://stackoverflow.com/questions/45695286/cannot-convert-value-of-type-string-anyobject-to-expected-argument-type – Dorad