oc 中正規表示式不區分中英文分號的問題

2021-09-25 16:30:11 字數 914 閱讀 6720

前幾天在用正則表達試驗證密碼輸入時發現不能區分出中英文分號。

**設定的字元編碼是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 其中位於 定界符之間的部分就是將要在目標物件中進行匹配的模式。為了能夠使使用者更加靈活的的定製模式內容,正規表示式提供了專門的 元字元 所謂元字元就是指那些表示式中具有特殊意義的字元,可以用來規定其前導字元 即在元字元前面的字元 在目標物件中的出現模式。較為...