Reprinted from: http://blog.csdn.net/h643342713/article/details/54292935
// only in Chinese func onlyInputChineseCharacters(_ string: String) -> Bool { var inputString = "[\u{4e00}-\u{9fa5}]+" var predicate = NSPredicate(format: "SELF MATCHES %@", inputString) var Chinese = predicate.evaluate(withObject: string) return Chinese } // can only be numbers func onlyInputTheNumber(_ string: String) -> Bool { var numString = "[0-9]*" var predicate = NSPredicate(format: "SELF MATCHES %@", numString) var number = predicate.evaluate(withObject: string) return number } // only lowercase func onlyInputLowercaseLetter(_ string: String) -> Bool { var regex = "[a-z]*" var predicate = NSPredicate(format: "SELF MATCHES %@", regex) var letter = predicate.evaluate(withObject: string) return letter } // only uppercase func onlyInputACapital(_ string: String) -> Bool { var regex = "[A-Z]*" var predicate = NSPredicate(format: "SELF MATCHES %@", regex) var capital = predicate.evaluate(withObject: string) return capital } // allow case func inputCapitalAndLowercaseLetter(_ string: String) -> Bool { var regex = "[a-zA-Z]*" var predicate = NSPredicate(format: "SELF MATCHES %@", regex) var inputString = predicate.evaluate(withObject: string) return inputString } //Allow case or numbers (unlimited characters) func inputLettersOrNumbers(_ string: String) -> Bool { var regex = "[a-zA-Z0-9]*" var predicate = NSPredicate(format: "SELF MATCHES %@", regex) var inputString = predicate.evaluate(withObject: string) return inputString } //Allow case or numbers (limit number of characters) func inputNumberOrLetters(_ name: String) -> Bool { var userNameRegex = "^[A-Za-z0-9]{6,20}+$" var userNamePredicate = NSPredicate(format: "SELF MATCHES %@", userNameRegex) var inputString = userNamePredicate.evaluate(withObject: name) return inputString } //Allow Chinese characters, uppercase and lowercase or numbers (limited characters) func inputChineseOrLettersNumberslimit(_ string: String) -> Bool { var regex = "[\u{4e00}-\u{9fa5}]+[A-Za-z0-9]{6,20}+$" var predicate = NSPredicate(format: "SELF MATCHES %@", regex) var inputString = predicate.evaluate(withObject: string) return inputString } //Allow Chinese characters or numbers (unlimited characters) func inputChineseOrNumbers(_ string: String) -> Bool { var regex = "[\u{4e00}-\u{9fa5}]+[0-9]*" var predicate = NSPredicate(format: "SELF MATCHES %@", regex) var inputString = predicate.evaluate(withObject: string) return inputString } //Allow Chinese characters or numbers (limited number of characters) func inputChineseOrNumbersLimit(_ string: String) -> Bool { var regex = "[\u{4e00}-\u{9fa5}][0-9]{6,20}+$" var predicate = NSPredicate(format: "SELF MATCHES %@", regex) var inputString = predicate.evaluate(withObject: string) return inputString } //Allow Chinese characters, uppercase and lowercase or numbers (unlimited characters) func inputChineseOrLettersAndNumbersNum(_ string: String) -> Bool { var regex = "[\u{4e00}-\u{9fa5}]+[A-Za-z0-9]*" var predicate = NSPredicate(format: "SELF MATCHES %@", regex) var inputString = predicate.evaluate(withObject: string) return inputString } //Allow Chinese characters, uppercase and lowercase or numbers (limited characters) func inputChineseOrLettersNumberslimit(_ string: String) -> Bool { var regex = "[\u{4e00}-\u{9fa5}]+[A-Za-z0-9]{6,20}+$" var predicate = NSPredicate(format: "SELF MATCHES %@", regex) var inputString = predicate.evaluate(withObject: string) return inputString }