Post

Replies

Boosts

Views

Created

String verification in textfield while typing in SwiftUI
Need to check the following pattern when a user type in textfield of SwiftUI : ABCDE1234F that is first five letters, followed by four numbers and last again a letter. I can check this after editing is complete by using func like given below: func isValidPAN(_ pan:String)->Bool{ let panRegex = "^[A-Z]{5}[0-9]{4}[A-Z]{1}" let panTest = NSPredicate(format: "SELF MATCHES %@", panRegex) return panTest.evaluate(with: pan) } In view, TextField(proEdit.panNo,text: $editData.panNO) .disableAutocorrection(true) .autocapitalization(.allCharacters) .onChange(of: editData.panNO, perform: { editData.panNO = String($0.prefix(10)) let valid = isValidPAN(editData.panNO) if valid{ correct.toggle() } This is working fine but what I want to do is user can only enter as per the required format that is first a letter, second letter and so on if first char is not letter it should not type like in the given below eg: TextField(proEdit.beneficiaryName, text:$editData.benefName) .onChange(of: editData.benefName, perform: {char in let filterChar = editData.benefName.filter{$0.isLetter || $0.isWhitespace} if editData.benefName != filterChar{ editData.benefName = filterChar } }) In the above, user can only type letter or whitespace
1
0
407
Dec ’22