Я создал логику регулярных выражений, она работает правильно, но в дополнение к одному текстовому полю у меня может быть их несколько, я создал словарь и переменную, чтобы она давала мне логическое значение true, при условии, что все текстовые поля, которые проверка регулярного выражения была верной, но, несмотря на это, когда одно текстовое поле возвращает true, allFieldsValid также возвращает true, мне нужно, чтобы все текстовые поля прошли проверку регулярного выражения и получили значение true, как я могу это исправить? и если мой код неверен, пожалуйста, помогите мне исправить его.
я записываю код ячеек
var regexValidate: Bool? = false
var validationResults: [String: Bool] = [:]
var allFieldsValid: Bool? = false
var requiredFields: Set = []
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange,
replacementString string: String) -> Bool {
if let regexPattern = regex {
print("IT IS REGEX!!--> [ \(regexPattern)")
let prospectiveText = (textField.text as NSString?)?.replacingCharacters(in: range,
with: string) ?? string
regexValidate = regexValidate(prospectiveText, withPattern: regexPattern)
if regexPattern == ""{
regexValidate = true
}
validationResults[paymentParametrName ?? ""] = regexValidate ?? false
requiredFields.insert(paymentParametrName ?? "")
allFieldsValid = checkAllFieldsValid()
print(" IS VALIDATE FOR CURRENT TEXTFIELD?? -->\(regexValidate) ] ---")
print("--->FULL Validation TEXTFIELDS: \(allFieldsValid)")
}
return true
}
private func regexValidate(_ text: String, withPattern pattern: String) -> Bool {
let regex = try? NSRegularExpression(pattern: pattern)
let range = NSRange(location: 0, length: text.utf16.count)
let matches = regex?.matches(in: text, options: [], range: range) ?? []
return matches.count == 1 && matches.first?.range == range
}
private func checkAllFieldsValid() -> Bool {
for field in requiredFields {
if validationResults[field] != true {
return false
}
}
return !requiredFields.isEmpty
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... wift-uikit
Текст текстового поля (один или несколько) проверка регулярного выражения Swift UIKit ⇐ IOS
Программируем под IOS
1720091688
Anonymous
Я создал логику регулярных выражений, она работает правильно, но в дополнение к одному текстовому полю у меня может быть их несколько, я создал словарь и переменную, чтобы она давала мне логическое значение true, при условии, что все текстовые поля, которые проверка регулярного выражения была верной, но, несмотря на это, когда одно текстовое поле возвращает true, allFieldsValid также возвращает true, мне нужно, чтобы все текстовые поля прошли проверку регулярного выражения и получили значение true, как я могу это исправить? и если мой код неверен, пожалуйста, помогите мне исправить его.
я записываю код ячеек
var regexValidate: Bool? = false
var validationResults: [String: Bool] = [:]
var allFieldsValid: Bool? = false
var requiredFields: Set = []
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange,
replacementString string: String) -> Bool {
if let regexPattern = regex {
print("IT IS REGEX!!--> [ \(regexPattern)")
let prospectiveText = (textField.text as NSString?)?.replacingCharacters(in: range,
with: string) ?? string
regexValidate = regexValidate(prospectiveText, withPattern: regexPattern)
if regexPattern == ""{
regexValidate = true
}
validationResults[paymentParametrName ?? ""] = regexValidate ?? false
requiredFields.insert(paymentParametrName ?? "")
allFieldsValid = checkAllFieldsValid()
print(" IS VALIDATE FOR CURRENT TEXTFIELD?? -->\(regexValidate) ] ---")
print("--->FULL Validation TEXTFIELDS: \(allFieldsValid)")
}
return true
}
private func regexValidate(_ text: String, withPattern pattern: String) -> Bool {
let regex = try? NSRegularExpression(pattern: pattern)
let range = NSRange(location: 0, length: text.utf16.count)
let matches = regex?.matches(in: text, options: [], range: range) ?? []
return matches.count == 1 && matches.first?.range == range
}
private func checkAllFieldsValid() -> Bool {
for field in requiredFields {
if validationResults[field] != true {
return false
}
}
return !requiredFields.isEmpty
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78705231/textfield-text-one-or-more-than-one-regex-check-swift-uikit[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия