iOS實現數字,字母或符號組合的有效性驗證

2021-07-11 17:47:52 字數 819 閱讀 8688

最近做乙個專案,由於之前設計密碼太過簡單很容易被破解,所以公升級了下密碼的複雜度,要求密碼有英文鍵盤下的數字,字母或字元至少兩種,對密碼字串進行驗證

思路是用正規表示式,使用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輸入框只能輸入數字 字母相關組合

輸入大小寫字母 數字 下劃線 輸入小寫字母 數字 下劃線 輸入數字和點 輸入中文 輸入數字 輸入英文 輸入中文 數字 英文 輸入數字和字母 除了英文的標點符號以外,其他的都可以中文,英文本母,數字,中文標點 只能輸入數字 小數點也不能輸入 只能輸入數字,能輸小數點.數字和小數點方法二 只能輸入字母和...