Swift正则表达式--判断输入类型

本文介绍了一种使用Swift语言中的NSPredicate进行字符串验证的方法,包括验证中文字符、数字、大小写字母等不同类型的输入,适用于多种应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


//只能为中文
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

}


//只能为数字
func onlyInputTheNumber(_ string: String) -> Bool {
    var numString = "[0-9]*"
    var predicate = NSPredicate(format: "SELF MATCHES %@", numString)
    var number = predicate.evaluate(withObject: string)
    return number
}


//只能为小写

func onlyInputLowercaseLetter(_ string: String) -> Bool {
    var regex = "[a-z]*"
    var predicate = NSPredicate(format: "SELF MATCHES %@", regex)
    var letter = predicate.evaluate(withObject: string)
    return letter
}


//只能为大写

func onlyInputACapital(_ string: String) -> Bool {
    var regex = "[A-Z]*"
    var predicate = NSPredicate(format: "SELF MATCHES %@", regex)
    var capital = predicate.evaluate(withObject: string)
    return capital

}


//允许大小写
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
}


//允许大小写或数字(不限字数)

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

}


//允许大小写或数字(限字数)
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
}


//允许汉字,大小写或数字(限字数)
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
}


//允许汉字或数字(不限字数)
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
}

//允许汉字或数字(限字数)
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
}

//允许汉字,大小写或数字(不限字数)

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

}


//允许汉字,大小写或数字(限字数)
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
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值