最近做乙個專案,由於之前設計密碼太過簡單很容易被破解,所以公升級了下密碼的複雜度,要求密碼有英文鍵盤下的數字,字母或字元至少兩種,對密碼字串進行驗證
思路是用正規表示式,使用nspredicate物件的
evaluatewithobject方法
廢話不多說,直接上**
匹配 數字,字母或符號至少兩種的6-20位字的符串
+ (bool) issafepassword:(nsstring *)strpwd$"; // 數字,字元或符號至少兩種
nspredicate *regextestcm = [nspredicate predicatewithformat:@"self matches %@", passwordregex];
if ([regextestcm evaluatewithobject:strpwd] == yes)
else
}
其中 (?!pattern)是斷言的一種它表示的意義不全是,是負向匹配
相關的還有:
(?=pattern)是正向匹配 ,意思是匹配pattern的串如windows (?=95|98|nt|2000)可以匹配
windows2000不能匹配 windowsxp
(?:pattern)匹配是pattern的內容,如ndustr(?:y|ies) 可以匹配'industry|industries'
執行結果:
匹配數字和字母包含兩種
正規表示式資料
簡單密碼驗證 重複的數字字母或連續的數字字母
驗證字串是否是重複的數字字母 111,aaa 或連續的數字字母 123,abc 基本思想是將字串轉為乙個個的char進行計算,簡單密碼驗證 重複的數字或字母111 aaa 連續的數字和字母123 abc param password return public static string verif...
數字字串轉換為字母組合的種數
題目 給定乙個字串str,str全部由陣列字元組成,如果str中某乙個或某相鄰兩個字元組成的子串值在1 26之間,則這個子串可以轉換為乙個字母。規定 1 轉換為 a 2 轉換為 b 3 轉換為 c 26轉換為 z 寫乙個函式,求str有多少種不同的轉換結果,並返回種數。public class nu...
input輸入框只能輸入數字 字母相關組合
輸入大小寫字母 數字 下劃線 輸入小寫字母 數字 下劃線 輸入數字和點 輸入中文 輸入數字 輸入英文 輸入中文 數字 英文 輸入數字和字母 除了英文的標點符號以外,其他的都可以中文,英文本母,數字,中文標點 只能輸入數字 小數點也不能輸入 只能輸入數字,能輸小數點.數字和小數點方法二 只能輸入字母和...