正则表达式为Swift 2中的双值

时间:2015-09-19 11:44:10

标签: regex swift2 ios9

双重的新正则表达式是什么,例如“123.45”

我使用旧的[0-9]{1,}.[0-9]{1,}|[0-9]{1,}\\d+(\\.\\d+)?。他们工作,但我不能使用.

当我点击键盘上的.时,它不会出现在字段

我在XCode 7 GM Seed - iOS 9 - iPad Air 2模拟器上进行了测试

更新:

    extension String {
        func stringsMatchingRegularExpression(expression: String) -> [String] {
            if let range = self.rangeOfString(expression, options: NSStringCompareOptions.RegularExpressionSearch, range: nil, locale: nil) {
                return [self[range]] + self[range.endIndex..<self.endIndex].stringsMatchingRegularExpression(expression)
            }
            return []
        }
}

这是我使用的扩展程序,此函数删除除正则表达式之外的所有内容:

func onlyDoubleUse(textField: AnyObject){
    let field = textField.object! as! UITextField
    let subStringArray = field.text!.stringsMatchingRegularExpression("\\d+(\\.\\d+)?")
    if(subStringArray.count>0){
        if(subStringArray[0] != ""){
            field.text = subStringArray[0]
        }else{
            field.text = ""
        }
    }else{
        field.text = ""
    }
}

NSNotificationCenter.defaultCenter().addObserver(self, selector: "onlyDoubleUse:", name: UITextFieldTextDidChangeNotification, object: theTextField)

0 个答案:

没有答案