iOS開發(fā)之限制中文、英文悼枢、數(shù)字的輸入

目前的開發(fā)的項目中有限制字符輸入的需求捷凄,趁此機會整理一下這個知識點丹墨。

1 嚴(yán)格限制輸入中文。中文unicode碼的范圍是4E00-9FEA ,共20970個漢字糯钙。

有興趣的可以去這個地址http://www.unicode.org/charts/PDF/U4E00.pdf看看。

- (BOOL)isChineseCharacter:(NSString*)source {

    NSString *regex = @"^[\\u4E00-\\u9FEA]+$";

    return ([source rangeOfString:regex options:NSRegularExpressionSearch].length>0);

}

2 嚴(yán)格限制輸入英文字母

英文unicode碼的范圍是 0041-005A(大寫字母)和 0061-007A(小寫字母)

- (BOOL)isEnglishCharacter:(NSString*)source {

    NSString *upperRegex = @"^[\\u0041-\\u005A]+$";

    NSString *lowerRegex = @"^[\\u0061-\\u007A]+$";

    BOOL isEnglish = (([source rangeOfString:upperRegex options:NSRegularExpressionSearch].length>0) || ([source rangeOfString:lowerRegex options:NSRegularExpressionSearch].length>0));

    returnisEnglish;

}

3 嚴(yán)格限制輸入數(shù)字产喉。數(shù)字的unicode范圍是 0030-0039

- (BOOL)isNumber:(NSString*)source {

    NSString *regex = @"^[\\u0030-\\u0039]+$";

    return ([source rangeOfString:regex options:NSRegularExpressionSearch].length>0);

}

以上方法僅是一種解決問題的思路析珊,僅供參考。

在實際的情況中蜈块,往往不會是這么嚴(yán)格的限定鉴腻∶陨龋空格,標(biāo)點符號你總得讓用戶去輸入吧爽哎!所以蜓席,這個時候,在做限制的時候就要考慮到其他的情況课锌。要不然用戶該罵娘了厨内!最重要的是,你下個月的“五險一金”可能要換個老板給你交了产镐!

--------------------------- 分割線 ---------------------------

下面附上限制輸入Emoji的方法隘庄,來自http://www.reibang.com/p/5227e6aab4d4

- (BOOL)stringContainsEmoji:(NSString*)source {

    __blockBOOLreturnValue =NO;

    [sourceenumerateSubstringsInRange:NSMakeRange(0, [source length])

                               options:NSStringEnumerationByComposedCharacterSequences

                            usingBlock:^(NSString*substring,NSRangesubstringRange,NSRangeenclosingRange,BOOL*stop) {

                                constunicharhs = [substringcharacterAtIndex:0];

                                if(0xd800<= hs && hs <=0xdbff) {

                                    if(substring.length>1) {

                                        constunicharls = [substringcharacterAtIndex:1];

                                        constintuc = ((hs -0xd800) *0x400) + (ls -0xdc00) +0x10000;

                                        if(0x1d000<= uc && uc <=0x1f77f) {

                                            returnValue =YES;

                                        }

                                    }

                                }elseif(substring.length>1) {

                                    constunicharls = [substringcharacterAtIndex:1];

                                    if(ls ==0x20e3) {

                                        returnValue =YES;

                                    }

                                }else{

                                    if(0x2100<= hs && hs <=0x27ff) {

                                        returnValue =YES;

                                    }elseif(0x2B05<= hs && hs <=0x2b07) {

                                        returnValue =YES;

                                    }elseif(0x2934<= hs && hs <=0x2935) {

                                        returnValue =YES;

                                    }elseif(0x3297<= hs && hs <=0x3299) {

                                        returnValue =YES;

                                    }elseif(hs ==0xa9|| hs ==0xae|| hs ==0x303d|| hs ==0x3030|| hs ==0x2b55|| hs ==0x2b1c|| hs ==0x2b1b|| hs ==0x2b50) {

                                        returnValue =YES;

                                    }

                                }

                            }];

    returnreturnValue;

}

以下為補充內(nèi)容,來自http://blog.csdn.net/j_r_k/article/details/78204578
在限制輸入的時候癣亚,可能要用到全角轉(zhuǎn)半角或半角轉(zhuǎn)全角的情況丑掺。
至于什么是全角半角,不明白的可以移步這里充一下電述雾。

全角轉(zhuǎn)半角

- (NSString *)replaceSpecialWhitespace{  
      NSMutableString *convertedString = [self mutableCopy];  
    CFStringTransform((CFMutableStringRef)convertedString, NULL, kCFStringTransformFullwidthHalfwidth, false);  
      return [NSString stringWithString:convertedString];  
} 

半角轉(zhuǎn)全角

- (NSString *)replaceNormalWhiteSpace{  
         NSMutableString *convertedString = [self mutableCopy];  
 CFStringTransform((CFMutableStringRef)convertedString, NULL, kCFStringTransformHiraganaKatakana, false);  
            return [NSString stringWithString:convertedString];  
}

分割線下的內(nèi)容街州,網(wǎng)侵刪!

如有錯誤玻孟,歡迎評論區(qū)給予指正唆缴!
如果感覺對你有幫助,別忘了給俺點個贊黍翎!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末面徽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子匣掸,更是在濱河造成了極大的恐慌趟紊,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碰酝,死亡現(xiàn)場離奇詭異霎匈,居然都是意外死亡,警方通過查閱死者的電腦和手機送爸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門铛嘱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人袭厂,你說我怎么就攤上這事墨吓。” “怎么了纹磺?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵帖烘,是天一觀的道長。 經(jīng)常有香客問我爽航,道長蚓让,這世上最難降的妖魔是什么乾忱? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮历极,結(jié)果婚禮上窄瘟,老公的妹妹穿的比我還像新娘。我一直安慰自己趟卸,他們只是感情好蹄葱,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著锄列,像睡著了一般图云。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上邻邮,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天竣况,我揣著相機與錄音,去河邊找鬼筒严。 笑死丹泉,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鸭蛙。 我是一名探鬼主播摹恨,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼娶视!你這毒婦竟也來了晒哄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤肪获,失蹤者是張志新(化名)和其女友劉穎寝凌,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贪磺,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡硫兰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年诅愚,在試婚紗的時候發(fā)現(xiàn)自己被綠了寒锚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡违孝,死狀恐怖刹前,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情雌桑,我是刑警寧澤喇喉,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站校坑,受9級特大地震影響拣技,放射性物質(zhì)發(fā)生泄漏千诬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一膏斤、第九天 我趴在偏房一處隱蔽的房頂上張望徐绑。 院中可真熱鬧,春花似錦莫辨、人聲如沸傲茄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盘榨。三九已至,卻和暖如春蟆融,著一層夾襖步出監(jiān)牢的瞬間草巡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工型酥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留捷犹,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓冕末,卻偏偏與公主長得像萍歉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子档桃,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353