2014-06-24 84 views
-1

我從我的Web服務接收授權字符串,代表Guid(C#)。如何使用Swift將字符串轉換爲guid?或者,我如何驗證結果,事實上,它是一個Guid?快速檢查字符串的guid值

var str1:String = "5810744d-49f7-4edc-aefb-ecd1ebf9e59b" 
var str2:String = "Some text" 

我如何定義 - 是字符串包含guid?

+0

向我們顯示一些代碼? – Shai

回答

3

可以使用NSPredicate用正則表達式來看看一個字符串是否是正確的格式:

var str1:String = "(5810744d-49f7-4edc-aefb-ecd1ebf9e59b)" 
var str2:String = "Some text" 

let guidPred = NSPredicate(format: "SELF MATCHES %@", "((\\{|\\()?[0-9a-f]{8}-?([0-9a-f]{4}-?){3}[0-9a-f]{12}(\\}|\\))?)|(\\{(0x[0-9a-f]+,){3}\\{(0x[0-9a-f]+,){7}0x[0-9a-f]+\\}\\})") 

// Prints "str1 IS a GUID" 
if guidPred.evaluateWithObject(str1) { 
    println("str1 IS a GUID") 
} else { 
    println("str1 is NOT a GUID") 
} 

// Prints "str2 is NOT a GUID" 
if guidPred.evaluateWithObject(str2) { 
    println("str2 IS a GUID") 
} else { 
    println("str2 is NOT a GUID") 
} 

此正則表達式將匹配任何對MSDN列出的四種格式。爲了保持它(相對)簡單,表達式將匹配一些格式不正確的字符串(例如,如果您要刪除一個連字符,但不是所有其他字符:5810744d49f7-4edc-aefb-ecd1ebf9e59b),但會過濾掉常規文本。