Ios swift中用于检查十进制输入的正则表达式
在我的应用程序中,有几个文本字段使用十进制键盘输入。所以我需要一个函数来验证这个数字Ios swift中用于检查十进制输入的正则表达式,ios,regex,swift,Ios,Regex,Swift,在我的应用程序中,有几个文本字段使用十进制键盘输入。所以我需要一个函数来验证这个数字 func valueCheck(check: Double) -> Double{ let myRegex = "^(?:|0|[1-9]\\d*)(?:\\.\\d*)?$" if check != nil && let match = check.rangeOfString(myRegex, options: .RegularExpressionSearch){
func valueCheck(check: Double) -> Double{
let myRegex = "^(?:|0|[1-9]\\d*)(?:\\.\\d*)?$"
if check != nil && let match = check.rangeOfString(myRegex, options: .RegularExpressionSearch){
return check
}else{
return 0.0
}
}
如果数字不是零或无效(如几个点),则返回数字。如果数字为零或无效,则返回0.0
我想使用正则表达式,但我不知道如何在swift中使用它。感谢您的帮助。Swift 2
class func regexMatch(source:String,regexStr:String) -> Bool{
let regex: NSRegularExpression?
do{
try regex = NSRegularExpression(
pattern: regexStr,
options: .CaseInsensitive)
}catch{
return false
}
if let matches = regex?.matchesInString(source,
options: NSMatchingOptions(rawValue: 0),
range: NSMakeRange(0, source.characters.count)) {
return matches.count > 0
} else {
return false
}
}
import Foundation
func valueCheck(d: Double) -> Double {
var result = 0.0
do {
let regex = try NSRegularExpression(pattern: "^(?:|0|[1-9]\\d*)(?:\\.\\d*)?$", options: [])
let results = regex.matchesInString(String(d), options:[], range: NSMakeRange(0, String(d).characters.count))
if results.count > 0 {result = d}
} catch let error as NSError {
print("invalid regex: \(error.localizedDescription)")
}
return result
}
Swift 3
import Foundation
func valueCheck(_ d: Double) -> Double {
var result = 0.0
do {
let regex = try RegularExpression(pattern: "^(?:|0|[1-9]\\d*)(?:\\.\\d*)?$", options: [])
let results = regex.matches(in: String(d), options: [], range: NSMakeRange(0, String(d).characters.count))
if results.count > 0 {result = d}
} catch let error as NSError {
print("invalid regex: \(error.localizedDescription)")
}
return result
}
“RegularExpression”中的“使用未解析标识符'RegularExpression'”有一个错误,因为此答案使用Swift 3。如果
import Foundation
缺少简单易用的解决方案,您也可以得到该错误