前幾天在用正則表達試驗證密碼輸入時發現不能區分出中英文分號。
**設定的字元編碼是utf-8
**:nsstring* regex = @"1
$"; // 其中分號為英文分號,長度是隨意寫的個控制;
nspredicate* pred = [nspredicate predicatewithformat:@「self matches %@」, regex];
bool ismatch;// 正則表達試驗證返回值,yes 為通過, no 為不通過;
ismatch = [pred evaluatewithobject: @";"]; // 英文分號,返回結果 yes 是通過
ismatch = [pred evaluatewithobject: @";"]; // 中文分號,返回結果 yes 也是通過
於是這樣寫:
ismatch = [pred evaluatewithobject:[[nsstring alloc] initwithformat:@"%s", [@";" cstringusingencoding:nsutf8stringencoding]]]; // 英文分號,返回結果 yes 是通過
ismatch = [pred evaluatewithobject:[[nsstring alloc] initwithformat:@"%s", [@";" cstringusingencoding:nsutf8stringencoding]]]; // 中文分號,返回結果 no 不通過;
這樣寫就可以正正確驗證了。原因我也不明,如果是編碼問題,中英文 句號 用第一種寫卻能分開。
若有凝問或錯誤,請指出,我好及時改正,讓我們一起進步!
email : [email protected]
qq : 103 586 2795
敲門磚: **譜寫人生
; ↩︎
iOS正規表示式之區分大小寫中英文,判斷輸入框型別
在開發過程中,有時需要對使用者輸入的型別做判斷,最常見是在註冊頁面即使用者名稱和密碼,直接上 pragma mark 只能為中文 bool onlyinputchinesecharacters nsstring string pragma mark 只能為數字 bool onlyinputthenu...
JS中正規表示式
js中正規表示式有幾種不同的使用方法,一些用法是通過字串物件來使用,另外一些通過正規表示式物件使用。一 regexp 正規表示式 的屬性和方法 1 屬性 regexp的例項有幾個唯讀的屬性 global表示是否為全域性匹配,igorecase表示是否忽略大小寫,multiline表示是否為多行匹配,...
PHP中正規表示式
正規表示式一般表示式的形式如下 love 其中位於 定界符之間的部分就是將要在目標物件中進行匹配的模式。為了能夠使使用者更加靈活的的定製模式內容,正規表示式提供了專門的 元字元 所謂元字元就是指那些表示式中具有特殊意義的字元,可以用來規定其前導字元 即在元字元前面的字元 在目標物件中的出現模式。較為...