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
缺少简单易用的解决方案,您也可以得到该错误