关于字符中含有url的判断以及处理

- (BOOL)isURL:(NSString *)url {//直接判断

    if(url.length < 1)

        return NO;

    if (url.length>4 && [[url substringToIndex:4] isEqualToString:@"www."]) {

        url = [NSString stringWithFormat:@"http://%@",url];

    } else {

        url = url;

    }

    NSString *urlRegex = @"(https|http|ftp|rtsp|igmp|file|rtspt|rtspu)://((((25[0-5]|2[0-4]\\d|1?\\d?\\d)\\.){3}(25[0-5]|2[0-4]\\d|1?\\d?\\d))|([0-9a-z_!~*'()-]*\\.?))([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\\.([a-z]{2,6})(:[0-9]{1,4})?([a-zA-Z/?_=]*)\\.\\w{1,5}";

    

    NSPredicate* urlTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", urlRegex];

    

    return [urlTest evaluateWithObject:url];

}

- (NSString *)getURLFromStr:(NSString *)string {

    NSError *error;

    //可以识别url的正则表达式

    NSString *regulaStr = @"((http[s]{0,1}|ftp)://[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)|(www.[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)";

    

    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regulaStr

                                                                           options:NSRegularExpressionCaseInsensitive

                                                                             error:&error];

    

    NSArray *arrayOfAllMatches = [regex matchesInString:string

                                                options:0

                                                  range:NSMakeRange(0, [string length])];

    

    //NSString *subStr;

    NSMutableArray *arr=[[NSMutableArray alloc] init];

    

    for (NSTextCheckingResult *match in arrayOfAllMatches){

        NSString* substringForMatch;

        substringForMatch = [string substringWithRange:match.range];

        [arr addObject:substringForMatch];

    }

    return arr.firstObject;

}

 

///加下划线

//设置下划线...

    /*

     NSUnderlineStyleNone                                    = 0x00, 无下划线

     NSUnderlineStyleSingle                                  = 0x01, 单行下划线

     NSUnderlineStyleThick NS_ENUM_AVAILABLE(10_0, 7_0)      = 0x02, 粗的下划线

     NSUnderlineStyleDouble NS_ENUM_AVAILABLE(10_0, 7_0)     = 0x09, 双下划线

     */

    

    

    [tncString addAttribute:NSUnderlineStyleAttributeName

                      value:@(NSUnderlineStyleSingle)

                      range:(NSRange){range.location,range.length}];

    //此时如果设置字体颜色要这样

    [tncString addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor]  range:NSMakeRange(range.location,range.length)];

    

    //设置下划线颜色...

    [tncString addAttribute:NSUnderlineColorAttributeName value:[UIColor blueColor] range:(NSRange){range.location,range.length}];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值