如何检查字符串是否包含int?-迅速

Arb*_*eli 17 string keyboard int contains swift

我需要知道一个字符串是否包含一个Int,以确保用户输入的名称是一个有效的全名,因为我需要使用户只键入字符,或者有效的是字符串中没有整数用户进入.谢谢你的帮助.

Tom*_*ton 37

您可以将Foundation方法与Swift字符串一起使用,这就是您应该在此处执行的操作.NSString内置了一些方法,用于NSCharacterSet检查是否存在某些类型的字符.这很好地转换为Swift:

var str = "Hello, playground1"

let decimalCharacters = CharacterSet.decimalDigits

let decimalRange = str.rangeOfCharacter(from: decimalCharacters)

if decimalRange != nil {
    print("Numbers found")
}
Run Code Online (Sandbox Code Playgroud)

如果您对限制可键入的内容感兴趣,则应该实现UITextFieldDelegate以及textField(_:shouldChangeCharactersIn:replacementString:)防止人们首先键入这些字符的方法.


小智 11

使用类中的方法的简单Swift 4版本:rangeOfCharacterString

    let numbersRange = stringValue.rangeOfCharacter(from: .decimalDigits)
    let hasNumbers = (numbersRange != nil)
Run Code Online (Sandbox Code Playgroud)


Jok*_*ker 7

此方法是我现在用于检查字符串是否包含数字的方法

func doStringContainsNumber( _string : String) -> Bool{

        let numberRegEx  = ".*[0-9]+.*"
        let testCase = NSPredicate(format:"SELF MATCHES %@", numberRegEx)
        let containsNumber = testCase.evaluateWithObject(_string)

        return containsNumber
        }
Run Code Online (Sandbox Code Playgroud)

如果您的字符串包含数字,则将返回true,否则返回false。希望能帮助到你


Luk*_*z D 5

        //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")}
Run Code Online (Sandbox Code Playgroud)


Mos*_*tfy 5

//A function that checks if a string has any numbers
func stringHasNumber(_ string:String) -> Bool {
    for character in string{
        if character.isNumber{
            return true
        }
    }
    return false
}

/// Check stringHasNumber function
stringHasNumber("mhhhldiddld")
stringHasNumber("kjkdjd99900")
Run Code Online (Sandbox Code Playgroud)