valueof convertir convert cast string swift keyboard int contains

string - convertir - ¿Cómo verificar si una cadena contiene un int?-Rápido



string to int swift 4 (7)

Tienes que engañar a Swift para que use Regex completando su nsRegularExpression

class Regex { let internalExpression: NSRegularExpression let pattern: String init(_ pattern: String) { self.pattern = pattern var error: NSError? self.internalExpression = NSRegularExpression(pattern: pattern, options: .CaseInsensitive, error: &error) } func test(input: String) -> Bool { let matches = self.internalExpression.matchesInString(input, options: nil, range:NSMakeRange(0, countElements(input))) return matches.count > 0 }

}

if Regex("//d/").test("John 2 Smith") { println("has a number in the name") }

Los obtuve de http://benscheirman.com/2014/06/regex-in-swift/

Necesito saber si una cadena contiene un int para asegurarme de que el nombre que el usuario ingresó es un nombre completo válido, para eso necesito hacer que el usuario escriba solo caracteres, o que no haya entradas en la cadena. ingresó. Gracias por toda la ayuda.


Este método es el que uso ahora para verificar si una cadena contiene un número

func doStringContainsNumber( _string : String) -> Bool{ let numberRegEx = ".*[0-9]+.*" let testCase = NSPredicate(format:"SELF MATCHES %@", numberRegEx) let containsNumber = testCase.evaluateWithObject(_string) return containsNumber }

Si su cadena contiene un número, devolverá true else false. Espero eso ayude


if (ContainsNumbers(str).count > 0) { // Your string contains at least one number 0-9 } func ContainsNumbers(s: String) -> [Character] { return s.characters.filter { ("0"..."9").contains($0)} }


//Swift 3.0 to check if String contains numbers (decimal digits): let someString = "string 1" let numberCharacters = NSCharacterSet.decimalDigits if someString.rangeOfCharacter(from: numberCharacters) != nil { print("String contains numbers")} else if someString.rangeOfCharacter(from: numberCharacters) == nil { print("String doesn''t contains numbers")}


Swift 2.3. versión funcionando.

extension String { func containsNumbers() -> Bool { let numberRegEx = ".*[0-9]+.*" let testCase = NSPredicate(format:"SELF MATCHES %@", numberRegEx) return testCase.evaluateWithObject(self) } }

Uso:

//guard let firstname = textField.text else { return } let testStr1 = "lalalala" let testStr2 = "1lalalala" let testStr3 = "lal2lsd2l" print("Test 1 = /(testStr1.containsNumbers())/nTest 2 = /(testStr2.containsNumbers())/nTest 3 = /(testStr3.containsNumbers())/n")


Puede usar los métodos de Foundation con Swift Strings, y eso es lo que debe hacer aquí. NSString ha incorporado métodos que usan NSCharacterSet para verificar si ciertos tipos de caracteres están presentes. Esto se traduce muy bien a Swift:

var str = "Hello, playground1" let decimalCharacters = CharacterSet.decimalDigits let decimalRange = str.rangeOfCharacter(from: decimalCharacters) if decimalRange != nil { print("Numbers found") }

Si está interesado en restringir lo que se puede escribir, debe implementar UITextFieldDelegate y el método textField(_:shouldChangeCharactersIn:replacementString:) para evitar que las personas textField(_:shouldChangeCharactersIn:replacementString:) esos caracteres en primer lugar.


Versión simple Swift 4 utilizando el método rangeOfCharacter de String clase String :

let numbersRange = stringValue.rangeOfCharacter(from: .decimalDigits) let hasNumbers = (numbersRange != nil)