Регулярное выражение

#uitextfield #swift4.2

#uitextfield #swift4.2

Вопрос:

Я хочу, чтобы пользователь вводил текст в текстовое поле, и если пользователь вводит «<«, к тексту в поле должен быть автоматически добавлен пробел

Я попытался удалить специальный символ, но мне нужно, чтобы пользователь также вводил его.

 let RISTRICTED_CHARACTERS = "<"
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {


let set = CharacterSet(charactersIn: RISTRICTED_CHARACTERS)
let inverted = set.inverted
let filtered = string.components(separatedBy: inverted).joined(separator: "")
if filtered == string amp;amp; string != "" {
   return false
} else {
    let maxLength = maxLenghtOfTextField
    let currentString: NSString = textField.text! as NSString
    let newString: NSString = currentString.replacingCharacters(in: range, with: string) as NSString
    return newString.length <= maxLength
}
 

В этом коде я не разрешаю «<» этот символ. Я хочу, чтобы текстовое поле было таким.

Мой вывод должен быть : hello <(space) world . Пробел должен быть добавлен автоматически, если я начинаю со знака «<«.

Комментарии:

1. Пожалуйста, отредактируйте, чтобы четко сформулировать свой вопрос. Неясно, какое отношение заголовок имеет к ситуации, которую вы представляете, или в чем проблема, и это делает вероятным, что ваш вопрос будет отложен из-за неясности.

Ответ №1:

Вместо .replacingCharacters, возможно, попробуйте .replacingOccurences

 let updatedString: String? = textField.text.replacingOccurrences(of: "<", with: " ")