반응형
스위프트에서 문자열에서 분음 부호를 제거하는 방법은?
a에서 발음 구별(또는 억양)을 제거하는 방법String
스위프트에서 "에엔"을 "에엔"으로 바꾸는 것처럼?다시 돌아가야 합니까?NSString
아니면 스위프트 내에서 할 수 있습니까?
스위프트에서 직접 작동할 수 있습니다.String
("Foundation"을 가져오는 경우):
let foo = "één"
let bar = foo.stringByFoldingWithOptions(.DiacriticInsensitiveSearch, locale: NSLocale.currentLocale())
print(bar) // een
스위프트 3:
let foo = "één"
let bar = foo.folding(options: .diacriticInsensitive, locale: .current)
print(bar) // een
@MartinR 답변 업데이트... 정렬/검색을 위한 문자열을 제공하는 Swift 3 확장자로 누군가에게 유용할 수 있습니다.
extension String {
var forSorting: String {
let simple = folding(options: [.diacriticInsensitive, .widthInsensitive, .caseInsensitive], locale: nil)
let nonAlphaNumeric = CharacterSet.alphanumerics.inverted
return simple.components(separatedBy: nonAlphaNumeric).joined(separator: "")
}
}
예.
print("Mÿ nâMe ís jÄço´B".forSorting) // "mynameisjacob"
이것이 내 해결책입니다
스위프트 5
extension String {
func unaccent() -> String {
return self.folding(options: .diacriticInsensitive, locale: .current)
}
}
이것은 또한 a를 적용하여 수행할 수 있습니다.StringTransform
:
let foo = "één"
let bar = foo.applyingTransform(.stripDiacritics, reverse: false)!
print(bar) // een
또는 사용자 지정 속성을 구현하여StringProtocol
extension StringProtocol {
var stripingDiacritics: String {
applyingTransform(.stripDiacritics, reverse: false)!
}
}
let bar = foo.stripingDiacritics
print(bar) // een
에 대한 답변 업데이트Swift 5.0.1
func toNoSmartQuotes() -> String {
let userInput: String = self
return userInput.folding(options: .diacriticInsensitive, locale: .current)
}
사용합니다.someTextField.text.toNoSmartQuotes()
언급URL : https://stackoverflow.com/questions/29521951/how-to-remove-diacritics-from-a-string-in-swift
반응형
'programing' 카테고리의 다른 글
jquery에서 href를 업데이트(첨부)하는 방법? (0) | 2023.10.02 |
---|---|
PowerShell에 경과 시간 표시 (0) | 2023.10.02 |
ps 명령이 도커 컨테이너에서 작동하지 않습니다. (0) | 2023.10.02 |
SCRIPT5: 워드프레스의 jQuery.min CDN 파일로 인해 IE9에서 액세스 거부 (0) | 2023.10.02 |
도커 파일에서 볼륨의 목적은 무엇입니까? (0) | 2023.10.02 |