Swift проверка: BIC/SWIFT код для любого банка, а также поиск SWIFT кода – Online services | SWIFT

Международная система денежных переводов SWIFT

  1. Если оплата товара или услуги производится юридическому лицу – нерезиденту, указывается наименование товара, услуги, а также номер и дата инвойса/контракта, на основе которого Вы приобретаете товар или получаете услугу. Из назначения платежа должно быть понятно, что товар или услуга предназначается частному лицу для личного пользования.
  2. При отправке SWIFT-перевода в Европу обязательным реквизитом является IBAN.


Отправка SWIFT-платежей которые создаются в Приват 24 или отделении банка происходит в течении операционного дня (до 19:30). SWIFT-платежи которые создаются после 19.30 и в выходные дни будут отправлены на следующий операционный день.

Как проверить что SWIFT-платеж отправлен?

При отправке SWIFT-платежа Вам будет предложено ввести свой e-mail адрес для того, чтобы на него пришел SWIFT-протокол который является подтверждением отправки SWIFT-платежа. Если у Вас нет e-mail адреса Вы можете обратиться в службу поддержки Приват 24 или получить консультацию по SWIFT-переводам через следующие каналы связи:

  • +38 (073) 900 00 04 (с 9:00 до 21:00) — выделенная телефонная линия*;
  • [email protected] — электронный почтовый ящик для обращений клиентов.

* +38 (073) 900 00 02 — круглосуточная поддержка Консьерж-сервис для VIP-клиентов.

Для ускорения расчетов при проведении международных платежей в пользу клиентов ПриватБанка необходимо использовать корреспондентские счета ПриватБанка в банках-корреспондентах.

USD
JP MORGAN CHASE BANK, NEW YORK, USA
SWIFT: CHASUS33 ACCOUNT: 0011000080
EURO
COMMERZBANK AG, FRANKFURT/MAIN, GERMANY
SWIFT: COBADEFF ACCOUNT: 400886700401
CHF
Banque de Commerce et de Placements,
SWIFT: BPCPCHGG ACCOUNT: 10.602602.0.100
PLN
Bank Pekao/Grupa Pekao S.A., WARSZAWA, PL
SWIFT: PKOPPLPW ACCOUNT: PL13124000013140533111120301

Банки-корреспонденты

Swift: проверка типа значения словаря

Я хотел бы проверить тип значения словаря, и я использую следующий тестовый код:

let swiftDict = [1: "one", 2: "two"]

if swiftDict[1] is NSString {
    println("it's an nsstring")
}

Я получил предупреждение компилятора: «Cast from’ String?’несвязанных NSString всегда терпит неудачу.

Изменил код следующим образом:

if let str = swiftDict[1] as? NSString? {
    println("it's an nsstring")
}

Теперь я получаю предупреждение компилятора: условное приведение из строки? до NSString? всегда получается.

Как исправить приведенное выше предупреждение? Как правильно проверить тип переменной?

Причина проверки заключается в том, чтобы выяснить, хранится ли строка или NSString.

swift introspection Поделиться Источник Boon     30 мая 2015 в 11:52

4 Ответов



4

Почему вы вообще хотите проверить свой тип значения, поскольку Swift уже является типобезопасным?

В отличие от Objective-C, массивы и словари в Swift типизируются. Таким образом, ваша переменная swiftDict имеет тип Dictionary<Int, String> (или [Int:String] для краткости), и поэтому значения этого словаря всегда будут String s, по определению.

Например, если вы пытались написать это:

let swiftDict = [1: "one", 2: "two", 3: 7]
// error: '_' is not convertible to 'StringLiteralConvertible'

Тогда компилятор будет ошибаться, сообщая вам, что 7 не имеет типа String и не конвертируется в String

, поэтому вы не можете добавить его в swiftDict , который, как предполагается, имеет тип [Int:String]

Это означает, что по определению swiftDict[1] всегда будет String (потому что swiftDict -это [Int:String] )… или nil , если в этом Дикте нет ключа 1 .

— > swiftDict[1] гарантированно будет иметь тип String? . Так что вам даже не нужно проверять тип приведения. Вам просто нужно проверить, если это nil или нет.

if let value = swiftDict[1] {
    println("swiftDict has a string value of \(value) for key 1")
} else {
    println("swiftDict does not have the key 1")
}

[EDIT] Также обратите внимание, что String и NSString являются бесплатными мостами, что означает, что они полностью взаимозаменяемы. Таким образом , вам даже не нужно проверять или бросать, если ваш String является NSString, так как всегда можно будет бросить от String до NSString и наоборот (всегда можно будет интерпретировать вашу строку как String или NSString ).

Поделиться AliSoftware     30 мая 2015 в 12:01



2

Если у вас есть словарь со смешанными типами (например, value:AnyObject), вы можете перебирать их и использовать is , чтобы проверить, какой тип значения в словаре, например

let swiftDict:[Int:AnyObject] = [1: "one", 2: "two", 3: 15, 4: true]
for (key, value) in swiftDict
{
    if (value is String)
    {
        println("\(key): \(value) is String")
    }
}

Поделиться BadmintonCat     30 мая 2015 в 12:11



0

Это не имеет значения, если вы бросаете его в строку или NSString, как его просто последовательность символов в словаре. Оба будут работать. Если его строка в словаре, его строка или NSString, в зависимости от того, что вы установите его как.

if let str = swiftDict[1] as? String 
{
    println("it's an string")
}

Поделиться jarryd     30 мая 2015 в 12:07



0

охранник может быть использован

   guard let key = swiftDict[1] else {
                println("swiftDict does not have the key 1")
                return;
            }

Поделиться hariszaman

    24 мая 2016 в 12:36


Похожие вопросы:


Получить значения из сложного массива словаря в Swift2

Я показываю словарь как UITableView. Я сделал это очень легко в Objective-c . Но теперь в swift, я не могу получить значения из массива словаря. Когда я пытаюсь получить значения в…


Расширение словаря ключа: строка value:Array в swift

Как я могу расширить словарь Swift типа [String:[Double]] ? Что такое протокол / Class_Type, который должен соответствовать значению при расширении словаря? [ P.S : в этом расширении я хочу вернуть…


Swift присвоить значение из словаря строковому объекту

Я использую swift dictionary типа AnyObject и читаю значения для конкретного ключа и присваиваю его строковому объекту, как это, contactObject.lastName = requestDict.objectForKey(lastName) as!…


Ошибка при получении значения из словаря в Swift

Я создал словарь, как var tempArray1 = [sdds,dsads] var tempArray2: AnyObject = [sddsa,34,tempArray1] var dictionary: [String:Array] = [key1:[value1],key2:[value2,6,tempArray2]] Приложение…


Значение типа ‘String’ не соответствует ожидаемому значению словаря типа ‘AnyObject’

Я получаю эту ошибку при создании словаря в Swift: Значение типа ‘String’ не соответствует ожидаемому значению справочника тип ‘AnyObject’ Код: let joeSmith : [String : AnyObject] = [Name : Joe…


Как я могу сравнить два словаря в Swift?

Есть ли простой способ сравнить два словаря [String: AnyObject] в swift, так как он не принимает оператор == ? Сравнивая два словаря, я имею в виду проверку того, что они имеют одинаковые точные…


Значения словаря в Swift

Я пытаюсь получить доступ к значениям, которые я установил в словаре Swift. Словарь имеет String для ключей и значений. Мое намерение состоит в том, чтобы использовать словарь для установки…


Swift закрытие как значения в словаре

Я пытаюсь использовать библиотеку Objective-C, которая ожидает NSDictionary в качестве возвращаемого типа. В пределах NSDictionary я могу возвращать значения любого типа, включая блоки. Я не могу…


Swift словарь получить ключ для значения

Я использую словарь swift типа [UIImage:UIImage], и я пытаюсь найти конкретный ключ для данного значения. В Objective-C я мог бы использовать allKeysForValue, но, похоже, такого метода для словаря…


Значение Nil несовместимо с ожидаемым значением словаря типа ‘Any’ swift

Пожалуйста, дайте мне знать, как пройти nil ? Потому что backend не позволяет мне отправлять пустую строку, поэтому я пытаюсь отправить nil вместо пустой строки. let params: [String : Any] = […


Swift проверка ввода текстового поля в реальном времени

Я изо всех сил пытался найти, Как проверить ввод текстового поля, когда пользователь набирает текст.

если пользователь вводит слово, он должен изменить метку и изображение в соответствии с некоторыми определенными правилами.

мой код работает, но я всегда на шаг позади. (поскольку он читает содержимое всегда до ввода следующего символа.

Если бы он просто проверял длину, я мог бы использовать countElements (textfield) + 1, но я хочу, чтобы он также показывал, что пользователь не может использовать определенные символы при вводе, поэтому это не будет работать для проверки нежелательных символов.

Я предполагаю, что функция, которую я использую, не является правильной «shouldChangeCharacters». Поэтому я немного теряюсь в том, что использовать. Есть ли способ прочитать команду println или NSLog, чтобы вернуться в розетку?

    func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {

        let passwordcheck = UserPasswordTextField.text

       
        if UserPasswordTextField.isFirstResponder() {
            if isValidPassword(passwordcheck) {
            PWimg.image = UIImage(named: "passwordapprovedicon")
            } else if passwordcheck.isEmpty {
                PWimg.image = UIImage(named: "passwordiconwrong")
            } else {
            PWimg.image = UIImage(named: "passwordiconwrong")
            }
}

     func isValidPassword(testStr2:String) -> Bool {
        println("validate password: \(testStr2)")
        
        let passwordRegEx = "[A-Z0-9a-z._%+-:/><#]{6,30}"
        
        if let passwordTest = NSPredicate(format: "SELF MATCHES %@", passwordRegEx) {
            return passwordTest.evaluateWithObject(testStr2)
        }
        
        return false       
swift character textfield Поделиться Источник William Larson     18 марта 2015 в 04:51

3 Ответа



9

Прослушивание событий UIControlEventEditingChanged из текстового поля. Зарегистрируйтесь для них либо с помощью

  1. конструктор интерфейсов: перетащите курсор из текстового поля в файл и выберите тип действия «Editing Changed»

  2. следующий код:

    override func viewDidLoad() {
        super.viewDidLoad()
        // ... 
        textField.addTarget(self, action:"edited", forControlEvents:UIControlEvents.EditingChanged)
    }
    
    func edited() {
       println("Edited \(textField.text)")
    }
    

Поделиться Teemu Kurppa     18 марта 2015 в 06:12



1

Обновлено для swift 3:

 override func viewDidLoad() {
     super.viewDidLoad()
     //...
     textField.addTarget(self, action: #selector(textFieldDidChange), for:.editingChanged)
 }

 func textFieldDidChange(){
     print(textField.text)
 }

Поделиться Eli Byers     06 августа 2017 в 02:20



0

Обновлено для swift 4.2: просто добавьте @objc в func textFieldDidChange()

 override func viewDidLoad()
{
    super.viewDidLoad()

    textField.addTarget(self, 
        action : #selector(textFieldDidChange), 
        for : .editingChanged) 
}

@objc func textFieldDidChange()
{ print(textField.text ?? "Doh!") }

Поделиться AB Murphy     08 ноября 2018 в 18:12


Похожие вопросы:


Как проверить ввод текстового поля в реальном времени?

Я пишу проверку для моего текстового поля, я нашел кое-что интересное, что ли я могу проверить, сколько цифр я набираю в текстовом поле в режиме реального времени. Мой ввод текстового поля должен…


Проверка текстового поля для ввода значения только больше нуля

Мне нужна проверка текстового поля asp.net, чтобы ввести значение, которое выше нуля; Не меньше нуля или ноль


Запись звука в реальном времени в Swift

Я создаю приложение, которое должно делать аудиозапись в реальном времени. Я использую Swift для проекта-поэтому не могу использовать библиотеку Novocaine (поскольку у нее есть код Obj-C++). Мне…


установите заполнение текстового поля с помощью swift в xcode

Как создать некоторое пространство в начале текстового поля с помощью swift? Я посмотрел на столб заполнение текстового поля Я не понимаю, что делает подкласс и как я могу использовать этот класс…


C#-чтение текстового файла в реальном времени

работа над чтением текстового файла в реальном времени в моей программе, но я не могу заставить его работать. Вот мой код, никаких ошибок: public void Main2(string[] args) { string[] fileContents;…


Проверка в реальном времени для поля ввода с помощью Primefaces/JSF

Мне нужно знать, есть ли способ сделать проверку в реальном времени с помощью Primefaces/JSF? Мое требование выглядит просто : У меня есть поле ввода, которое будет принимать только уникальное имя….


Проверка текстового поля во время ввода текста

Я начинаю справляться с функциями текстового поля, которые позволяют вам проверять, когда происходит didEndEditing или shouldStartEditing. У меня это работает нормально, когда у меня есть 2…


Как заполнить значение textbox в реальном времени на дату начала и окончания записи в представлении razor?

Вопрос: Как я могу заполнить значение текстового поля (количество дней) в реальном времени на основе ввода пользователем даты начала и окончания в представлении mvc3/razor? Спасибо!


Проверка текстового поля при вводе ввода в текстовое поле

Я пытаюсь реализовать форму регистрации, которая просит пользователей ввести желаемый Логин-идентификатор. Пользователь вводит желаемый идентификатор входа в текстовое поле. Я хотел бы выполнить…


Проверка поля ввода в реальном времени с помощью vuejs

У меня есть поле ввода, которое я хочу проверить в реальном времени. Поскольку это только одно поле, я хотел бы избежать использования целой библиотеки для проверки формы vue. Есть три вещи, которые…


Проверка переменной в Swift — CodeRoad

если testValue -это Bool, то вы можете сказать::

if testValue {
  //Code
}

Однако Swift является более строго типизированным, чем C и другие C-подобные языки.

В C указатель может быть равен нулю, то есть равен нулю, то есть равен false, так что

if (aPointer) {}

эквивалентно

if (aPointer != nil)

Однако Swift этого не допускает. Типы указателей не могут быть нулевыми, nil -это специальная настройка «no value», которая не совпадает с нулем или ложью.

Вы должны явно сказать if aPointer != nil в Swift.

Как указывали другие, if let -это нечто иное, известное как «optional binding». Чтобы объяснить это, вам нужно было бы понять опционные игры.

В Swift нулевые значения обрабатываются специальной оболочкой, известной как «Optional». Представьте себе Optional как упакованный пакет, который может быть либо пустым, либо содержать объект.

Optional либо содержит некоторое значение, либо содержит ноль. Чтобы получить значение внутри, вам нужно «unwrap» Optional .

Есть выражение «force wrap» ( !), которое говорит: «Поверь мне, я знаю, что это Optional никогда не может быть нулем.»Если вы используете его, и Optional действительно содержит ноль, ваша программа аварийно завершает работу. Поэтому я называю его оператором «crash if nil» и предлагаю вам избегать его, если вы действительно не знаете, что делаете.

Тогда существует необязательная привязка «if let». В следующем коде:

var value: String?

if let testValue = value {
    //test value only exists inside these braces.
    print(value)
} else {
    //testValue is not defined here
    print("value is nil")
}
//testValue isn't defined here either.

if let говорит: «Если необязательная переменная value содержит ненулевое значение, удалите это значение из необязательной переменной и поместите его в необязательную константу let с именем testValue, которая будет определена только внутри фигурных скобок, следующих за инструкцией if .

Есть также и другие способы работы с опционными числами, такими как guard утверждений и «nil coalescing operator», но я оставлю вам исследовать их. Я не собираюсь освещать каждый аспект Opionals в коротком посте на форуме.

Swift проверка анаграмм — CodeRoad

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

Теперь я предлагаю и обсуждаю реализацию нескольких вариантов проверки анаграмм. Чтобы измерить производительность, я буду использовать различные варианты, чтобы найти анаграммы данного слова из массива 50 000 + слов.

// Variant 1: Sorting of Character
// Measured time: 30.46 s
func anagramCheck1(a: String, b: String) -> Bool {
    return a.characters.sorted() == b.characters.sorted()
}

Это, по сути, решение принятого ответа, написанного в синтаксисе Swift 3. Это очень медленно, потому что строка Swift, в отличие от NSString, основана на символе, который правильно обрабатывает символы Unicode.

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

// Variant 2: NSCountedSet of Character
// Measured time: 4.81 s
func anagramCheck2(a: String, b: String) -> Bool {
    guard a.characters.count == b.characters.count else { return false }
    let aSet = NSCountedSet()
    let bSet = NSCountedSet()
    for c in a.characters {
        aSet.add(c)
    }
    for c in b.characters {
        bSet.add(c)
    }
    return aSet == bSet
}

Лучше, но не превосходно. Здесь одним из «culprits» является использование собственного символьного типа Swift (из строки Swift). Возвращение к старой доброй цели-C типов (NSString и unichar) делает вещи более эффективными.

// Variant 3: NSCountedSet of unichar
// Measured time: 1.31 s
func anagramCheck3(a: String, b: String) -> Bool {
    let aString = a as NSString
    let bString = b as NSString
    let length = aString.length
    guard length == bString.length else { return false }
    let aSet = NSCountedSet()
    let bSet = NSCountedSet()
    for i in 0..<length {
        aSet.add(aString.character(at: i))
        bSet.add(bString.character(at: i))
    }
    return aSet == bSet
}

Использование NSCountedSet прекрасно, но прежде чем мы сравним два объекта NSCountedSet, мы полностью их заполняем. Полезной альтернативой является полное заполнение NSCountedSet только для одной из двух строк, а затем, в то время как мы заполняем NSCountedSet для другой строки, мы рано терпим неудачу, если другая строка содержит символ, который не найден в NSCountedSet первой строки.

// Variant 4: NSCountedSet of unichar and early exit
// Measured time: 1.07 s
func anagramCheck4(a: String, b: String) -> Bool {
    let aString = a as NSString
    let bString = b as NSString
    let length = aString.length
    guard length == bString.length else { return false }
    let aSet = NSCountedSet()
    let bSet = NSCountedSet()
    for i in 0..<length {
        aSet.add(aString.character(at: i))
    }
    for i in 0..<length {
        let c = bString.character(at: i)
        if bSet.count(for: c) >= aSet.count(for: c) {
            return false
        }
        bSet.add(c)
    }
    return true
}

Это примерно лучшее время, которое мы собираемся получить (с Swift). Однако для полноты картины Позвольте мне обсудить еще один вариант такого рода.

Следующая альтернатива использует словарь типа Swift [unichar: Int] для хранения количества повторений для каждого символа вместо NSCountedSet. Это немного медленнее, чем предыдущие два варианта, но мы можем использовать его позже, чтобы получить более быструю реализацию.

// Variant 5: counting repetitions with [unichar:Int]
// Measured time: 1.36
func anagramCheck5(a: String, b: String) -> Bool {
    let aString = a as NSString
    let bString = b as NSString
    let length = aString.length
    guard length == bString.length else { return false }
    var aDic = [unichar:Int]()
    var bDic = [unichar:Int]()
    for i in 0..<length {
        let c = aString.character(at: i)
        aDic[c] = (aDic[c] ?? 0) + 1
    }
    for i in 0..<length {
        let c = bString.character(at: i)
        let count = (bDic[c] ?? 0) + 1
        if count > aDic[c] ?? 0 {
            return false
        }
        bDic[c] = count
    }
    return true
}

Обратите внимание,что реализация vanilla Objective-C с использованием NSCountedSet, соответствующая варианту 3, быстрее всех предыдущих версий на довольно большой запас.

// Variant 6: Objective-C and NSCountedSet
// Measured time: 0.65 s
- (BOOL)anagramChecker:(NSString *)a with:(NSString *)b {
    if (a.length != b.length) {
        return NO;
    }
    NSCountedSet *aSet = [[NSCountedSet alloc] init];
    NSCountedSet *bSet = [[NSCountedSet alloc] init];
    for (int i = 0; i < a.length; i++) {
        [aSet addObject:@([a characterAtIndex:i])];
        [bSet addObject:@([b characterAtIndex:i])];
    }
    return [aSet isEqual:bSet];
}

Другой способ, которым мы можем улучшить предыдущие попытки, состоит в том, чтобы заметить, что если нам нужно найти анаграмму данного слова, мы могли бы также считать это слово фиксированным, и таким образом мы могли бы построить соответствующую структуру (NSCountedSet, Dictionary,…) за это слово только один раз.

// Finding all the anagrams of word in words
// Variant 7: counting repetitions with [unichar:Int]
// Measured time: 0.58 s
func anagrams(word: String, from words: [String]) -> [String] {
    let anagrammedWord = word as NSString
    let length = anagrammedWord.length
    var aDic = [unichar:Int]()
    for i in 0..<length {
        let c = anagrammedWord.character(at: i)
        aDic[c] = (aDic[c] ?? 0) + 1
    }
    let foundWords = words.filter {
        let string = $0 as NSString
        guard length == string.length else { return false }
        var bDic = [unichar:Int]()
        for i in 0..<length {
            let c = string.character(at: i)
            let count = (bDic[c] ?? 0) + 1
            if count > aDic[c] ?? 0 {
                return false
            }
            bDic[c] = count
        }
        return true
    }
    return foundWords
}

Теперь, в предыдущем варианте мы посчитали со словарем [unichar:Int]. Это оказывается немного более эффективным, чем использование NSCountedSet unichar, либо с ранним выходом (0.60 С), либо без (0.87 с).

Swift: Проверка Ввода Имени Пользователя

Работая над приложением Swift, у меня есть форма, заполненная пользователем, и я хотел бы, чтобы пользователь выбрал свое собственное имя пользователя. Единственное ограничение, которое я хочу на имя пользователя, это:

  • Никаких специальных символов (напр.@,#,$,%,&,*,(,),^,<,>,!,±)
  • Допускаются только буквы, подчеркивания и цифры
  • Длина должна быть be 18 символов максимум и 7 символов минимум

Где я могу найти функцию, которая проверяет входную строку (параметр функции) и возвращает true или false на основе вышеуказанных критериев? Я не очень хорошо разбираюсь в регулярных выражениях.

ios regex swift Поделиться Источник ksa_coder     21 июня 2016 в 07:47

5 Ответов



16

Вы можете использовать

^\w{7,18}$

или

\A\w{7,18}\z

Смотрите демо-версию regex

Детали рисунка :

  • ^ -начало строки (можно заменить на \A , чтобы обеспечить совпадение только начала строки)
  • \w{7,18} — от 7 до 18 символов слов (т. е. любые буквы Юникода , цифры или подчеркивания, если вы разрешаете только ASCII букв и цифр, используйте вместо них [a-zA-Z0-9] или [a-zA-Z0-9_] )
  • $ -конец строки (для проверки я бы предпочел использовать \z вместо этого, чтобы гарантировать, что конец строки только совпадает).

Код Swift

Обратите внимание, что если вы используете его с NSPredicate и MATCHES , вам не нужны якоря начала/конца строки, так как совпадение будет закреплено по умолчанию:

func isValidInput(Input:String) -> Bool {
    let RegEx = "\\w{7,18}"
    let Test = NSPredicate(format:"SELF MATCHES %@", RegEx)
    return Test.evaluateWithObject(Input)
}

В противном случае, вы не должны опускать якоря:

func isValidInput(Input:String) -> Bool {
    return Input.range(of: "\\A\\w{7,18}\\z", options: .regularExpression) != nil
}

Поделиться Wiktor Stribiżew     21 июня 2016 в 07:54



6

func validateUsername(str: String) -> Bool
{
    do
    {
        let regex = try NSRegularExpression(pattern: "^[0-9a-zA-Z\\_]{7,18}$", options: .CaseInsensitive)
        if regex.matchesInString(str, options: [], range: NSMakeRange(0, str.characters.count)).count > 0 {return true}
    }
    catch {}
    return false
}

Поделиться Shadow Of     21 июня 2016 в 07:53



1

func isValidUsername(testStr:String) -> Bool {

        var rawString: String = testStr
        var whitespace: NSCharacterSet = NSCharacterSet.whitespaceAndNewlineCharacterSet()
        trimmed = rawString.stringByTrimmingCharactersInSet(whitespace)

        if trimmed.characters.count>0
        {

            return true
        }
        else
        {

            return false
        }

    }

Поделиться Rouny     04 августа 2016 в 09:18



0

В случае, когда имя пользователя должно иметь 8-15 символ, должно начинаться с буквы, может включать буквы, цифры _ или

Попробовать это

func isValidUsername(_ username : String) -> Bool{
    if username.count > 7 && username.count < 16{
        let regex =  "^[a-z]([a-z0-9]*[-_][a-z0-9][a-z0-9]*)$"

        let passwordTest = NSPredicate(format: "SELF MATCHES %@", regex)
        return passwordTest.evaluate(with: username)
    }else{
        return false

    }
}

Результат примерно такой: -28, 29, 30 и так далее.

Поделиться Amit Kumar     14 апреля 2018 в 15:34



0

В Swift 4

extension String {

    var isValidName: Bool {
       let RegEx = "^\\w{7,18}$"
       let Test = NSPredicate(format:"SELF MATCHES %@", RegEx)
       return Test.evaluate(with: self)
    }
}

Поделиться Sourabh Kumbhar     11 января 2019 в 12:14


Похожие вопросы:


Изменить заполнитель html после ввода имени пользователя

Чтобы сэкономить место (и сохранить вещи более компактными), я добавил поле ввода с заполнителем, указывающим <input id=username-search placeholder=view another users work> после добавления…


Проверка существующего имени пользователя не работает

Я не уверен, почему, но приведенный ниже код не проверяет наличие существующего имени пользователя и обрабатывает запрос. Просто понял, что тот же код был отформатирован для проверки email, и он…


Проверка недопустимой строки имени пользователя в форме ввода

У меня есть коллекция строк, хранящихся в таблице базы данных, разделенных запятой. Таблица not_allowed содержание : администратор, администратор, Регистрация, email, пароль, логин, база данных,…


проверка имени пользователя с помощью jQuery

Доступность Имени Пользователя Я хочу сделать вызов Ajax, который будет считывать данные из поля ввода в html , а затем вызовет taken.php , который проверяет, что это имя пользователя уже занято….


Проверка ввода только для алфавитных символов

Я хочу проверить мое поле ввода имени пользователя, которое не допускает никаких чисел или специальных символов внутри. Мой Html <div class=form-group> <input type=text name=username…


Проверка наличия имени пользователя в Laravel

Есть ли способ проверить, если имя пользователя уже принято в laravel? Я имею в виду, что я хочу проверить, если имя пользователя берется уже без отправки формы, что означает проверку доступности…


Проверка кода ввода имени пользователя и пароля

Я использую метод входа в систему для создания учетной записи пользователя. Когда клавиша enter нажимается без ввода какого-либо символа в полях имени пользователя и пароля, она сохраняется в файле…


Twitter фильтрация текста в поле ввода имени пользователя

Кто-нибудь знает, как работает поле ввода имени пользователя Twitter ? В регистрационной форме, если вы наберете любой символ UTF-8, он не будет отображаться. Как это делается?


Yii2 проверка имени пользователя

В моем приложении Yii2 я пытаюсь проверить поле, которое я использую для ввода имени пользователя, используя пользовательский метод проверки, который проверяет, есть ли в этом поле пробелы. class…


Проверка имени пользователя перед регистрацией Firebase

После использования snapshot.exists() имя пользователя всегда будет возвращено как доступное при регистрации. Как я могу изменить свой код, чтобы правильно проверить, было ли уже взято имя…


Swift идиоматическая проверка ошибок — CodeRoad

Сравните объекты ошибок обработки, возвращенные из методов в » руководстве по программированию обработки ошибок «:

Важно: успех или неудача обозначаются возвращаемым значением параметра метод. Хотя Cocoa методы, которые косвенно возвращают объекты ошибок в домен ошибок Cocoa гарантированно возвращает такие объекты, если метод указывает на сбой, непосредственно возвращая nil или NO, вы должны всегда проверяйте, что возвращаемое значение равно nil или NO, прежде чем пытаться сделайте что-нибудь с объектом NSError.

Поэтому для Cocoa/Cocoa сенсорных методов вы всегда должны проверять возврат сначала значение. Гарантируется, что error != nil в случае сбоя метода, но это явно не гарантируется, что error == nil , если метод завершится успешно.

Образцы:

Сериализация JSON

var error : NSError?
if let jsonObj = NSJSONSerialization.JSONObjectWithData(jsonData, options: nil, error: &error) {
    // success
} else {
    // failure
    println("Invalid JSON data: \(error!.localizedDescription)")
}

Запрос выборки основных данных

var error : NSError?
if let result = context.executeFetchRequest(request, error: &error) {
    // success, result has zero or more elements
} else {
    // failure
    println("Fetch failed: \(error!.localizedDescription)")
}

Копирование файлов

var error : NSError?
if !NSFileManager.defaultManager().copyItemAtPath(srcPath, toPath: dstPath, error: &error) {
    println("Cannot copy file: \(error!.localizedDescription)")
}

Конечно, вы можете определить свои собственные правила для своих собственных функций, но я бы следовал тем же рекомендациям Apple.


Обновление: по состоянию на Swift 2, Cocoa методы, которые производят ошибки являются переведенные в Swift функции, которые выдают ошибку, и эта ошибка должны быть обработаны с trycatch . Вот версия Swift 2 из приведенных выше примеров:

Сериализация JSON

do {
    let jsonObj = try NSJSONSerialization.JSONObjectWithData(jsonData, options: [])
    // success
} catch let error as NSError {
    // failure
    print("Invalid JSON data: \(error.localizedDescription)")
}

Запрос выборки основных данных

do {
    let result = try context.executeFetchRequest(request)
    // success, result has zero or more elements
} catch let error as NSError {
    // failure
    print("Fetch failed: \(error.localizedDescription)")
}

Копирование файлов

do {
    try NSFileManager.defaultManager().copyItemAtPath(srcPath, toPath: dstPath)
} catch let error as NSError {
    print("Cannot copy file: \(error.localizedDescription)")
} 

Leave a comment