string - कैसे जांचने के लिए कि कोई स्ट्रिंग में int है?-Swift




keyboard contains (5)

आप अपने एनएस रेग्युलर एक्सपशन को लपेटकर रैगेक्स का इस्तेमाल करने में स्विफ्ट की कोशिश कर रहे हैं

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")
}

मुझे http://benscheirman.com/2014/06/regex-in-swift/ से मिला है

मुझे यह जानना होगा कि एक स्ट्रिंग में इंट को सुनिश्चित करने की ज़रूरत है कि उपयोगकर्ता नाम दर्ज किया गया नाम एक वैध पूर्ण नाम है, इसके लिए मुझे उपयोगकर्ता के प्रकार केवल वर्ण बनाने की आवश्यकता है या मान्य है कि उपयोगकर्ता में स्ट्रिंग उपयोगकर्ता में कोई ints नहीं है घुसा। पूरी सहायताके लिए शुक्रिया।


यह पद्धति यह है कि मैं अब जांचने के लिए उपयोग कर रहा हूं अगर कोई स्ट्रिंग संख्या शामिल है

func doStringContainsNumber( _string : String) -> Bool{

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

        return containsNumber
        }

यदि आपकी स्ट्रिंग में कोई संख्या शामिल है, तो यह सही और गलत होगा। आशा करता हूँ की ये काम करेगा


        //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")}

स्विफ्ट 2.3 संस्करण काम कर रहा है

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

उपयोग:

//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")

String क्लास से rangeOfCharacter विधि का उपयोग कर सरल स्विफ्ट 4 संस्करण:

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





contains