1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > php ios 判断字符串长度 iOStextfield 限制输入字符长度和过滤表情符号

php ios 判断字符串长度 iOStextfield 限制输入字符长度和过滤表情符号

时间:2020-12-17 00:54:00

相关推荐

php ios 判断字符串长度 iOStextfield 限制输入字符长度和过滤表情符号

//增加修改框

-(void)creatSaveView{

UILabel* lab = [[UILabelalloc]init];

if(self.searchType==1) {

lab.frame=CGRectMake(14,8*KWIDTH+64,IPHONE_WIDTH-100,16*KWIDTH);

}else{

lab.frame=CGRectMake(14,8*KWIDTH,IPHONE_WIDTH-100,16*KWIDTH);

}

lab.text=@"备注名";

lab.font= [UIFontsystemFontOfSize:14];

lab.textColor=kColor(137,137,137);

[self.viewaddSubview:lab];

UIView*view=[[UIViewalloc]init];

if(self.searchType==1) {

view.frame=CGRectMake(0,32*KWIDTH+64,IPHONE_WIDTH,40*KWIDTH);

}else{

view.frame=CGRectMake(0,32*KWIDTH,IPHONE_WIDTH,40*KWIDTH);

}

UIView*lineViewlight3=[[UIViewalloc]initWithFrame:CGRectMake(0,0,IPHONE_WIDTH,0.5)];

lineViewlight3.backgroundColor=kColor(200,200,200);

lineViewlight3.alpha=0.8;

[viewaddSubview:lineViewlight3];

UIView*lineViewlight4=[[UIViewalloc]initWithFrame:CGRectMake(0,40*KWIDTH-0.5,IPHONE_WIDTH,0.5)];

lineViewlight4.backgroundColor=kColor(200,200,200);

lineViewlight4.alpha=0.7;

[viewaddSubview:lineViewlight4];

view.backgroundColor=[UIColorwhiteColor];

_nameField= [[UITextFieldalloc]initWithFrame:CGRectMake(10*KWIDTH,0,IPHONE_WIDTH-15*KWIDTH,40*KWIDTH)];

_nameField.text=self.NameField;

_nameField.borderStyle=UITextBorderStyleNone;

_nameField.clearButtonMode=UITextFieldViewModeAlways;

[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(textFiledEditChanged:)

name:@"UITextFieldTextDidChangeNotification"

object:_nameField];

[viewaddSubview:_nameField];

[self.viewaddSubview:view];

}

-(void)textFiledEditChanged:(NSNotification*)obj{

UITextField*textField = (UITextField*)obj.object;

//过滤掉系统表情

// UITextView * textView;

//

// NSRange textRange = [textView selectedRange];

// [textView setText:[self disable_emoji:[textView text]]];

// [textView setSelectedRange:textRange];

NSString*toBeString = textField.text;

DSLog(@"-----toBeString 1 ----%@",toBeString);

BOOLisEmoj = [selfstringContainsEmoji:toBeString];

NSString* _showStr;

toBeString = [selfdisable_emoji:toBeString];

// textField.text = toBeString;

DSLog(@"-----toBeString 2 -----%@",toBeString);

NSString*lang = [[UITextInputModecurrentInputMode]primaryLanguage];//键盘输入模式

if([langisEqualToString:@"zh-Hans"]) {//简体中文输入,包括简体拼音,健体五笔,简体手写

UITextRange*selectedRange = [textFieldmarkedTextRange];

//获取高亮部分

UITextPosition*position = [textFieldpositionFromPosition:selectedRange.startoffset:0];

//没有高亮选择的字,则对已输入的文字进行字数统计和限制

if(!position) {

if(toBeString.length>kHZMaxLength) {

textField.text= [toBeStringsubstringToIndex:kHZMaxLength];

_showStr = [toBeStringsubstringToIndex:kHZMaxLength];

}

}

//有高亮选择的字符串,则暂不对文字进行统计和限制

else{

}

}

//中文输入法以外的直接对其统计限制即可,不考虑其他语种情况

else{

if(toBeString.length>kEGMaxLength) {

textField.text= [toBeStringsubstringToIndex:kEGMaxLength];

_showStr = [toBeStringsubstringToIndex:kEGMaxLength];

}

}

DSLog(@" _showStr %@",_showStr);

if(isEmoj) {

if([_showStrlength]) {

textField.text= _showStr;

}else{

textField.text= toBeString;

}

}

}

//判断NSString字符串是否包含emoji表情

- (BOOL)stringContainsEmoji:(NSString*)string

{

__blockBOOLreturnValue =NO;

[stringenumerateSubstringsInRange:NSMakeRange(0, [stringlength])options:NSStringEnumerationByComposedCharacterSequencesusingBlock:^(NSString*substring,NSRangesubstringRange,NSRangeenclosingRange,BOOL*stop) {

constunicharhs = [substringcharacterAtIndex:0];

// surrogate pair

if(0xd800) {

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{

// non surrogate

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;

}

#pragma Mark ---过滤表情

- (NSString*)disable_emoji:(NSString*)text

{

NSRegularExpression*regex = [NSRegularExpressionregularExpressionWithPattern:@"[^u0020-u007Eu00A0-u00BEu2E80-uA4CFuF900-uFAFFuFE30-uFE4FuFF00-uFFEFu0080-u009Fu2000-u201f

]"options:NSRegularExpressionCaseInsensitiveerror:nil];

NSString*modifiedString = [regexstringByReplacingMatchesInString:text

options:0

range:NSMakeRange(0, [textlength])

withTemplate:@""];

returnmodifiedString;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。