我正在寻找一种方法来替换Swift中的字符String.
例: "This is my string"
我想,以取代 with +获得: "This+is+my+string".
我怎样才能做到这一点?
如何防止某些字符输入到我的 SwiftUI TextField 中,以便在输入不允许的字符时完全忽略或替换为“”。
我下面的代码仅通过指定要忽略的单个字符来工作,但在我的情况下,我需要能够指定许多允许的字符,而无需使用正则表达式(为了可读性)。
我试图使其基于现有的 SO 文章工作,但需要帮助如何通过将输入的每个新字符与一系列允许的字符进行比较来检查它。
TextField 还需要防止输入空格......
我读过很多关于此 NOT FOR SWIFTUI TEXTFIELDS 的文章,并且它们不容易用正则表达式理解。
enum InputType {
case username
case code
}
struct AccountInput: View {
let placeholder: String
@Binding var input: String
let inputType: InputType
var body: some View {
HStack {
TextField(placeholder, text: $input)
.onChange(of: input) { _ in
switch inputType {
case .username:
let allowedCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._-"
let allowedCharacterSet = CharacterSet(charactersIn: allowedCharacters)
let typedCharacterSet = CharacterSet(charactersIn: input)
input = input.replacingOccurrences(of: ???, with: "")
// ^ …Run Code Online (Sandbox Code Playgroud)