双重的新正则表达式是什么,例如“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)