【问题标题】:Validate URLs which contain emojis in Objective-C [duplicate]在 Objective-C 中验证包含表情符号的 URL [重复]
【发布时间】:2018-07-10 12:32:35
【问题描述】:

我正在使用以下方法验证 URL:

+ (BOOL)confirmValidUrl:(NSString *)url {

    BOOL isValidURL = NO;
    NSString *urlRegEx = @"(?:www\\.)?[\\w\\d\\-_]+\\.\\w{2,3}(\\.\\w{2})?(/(?<=/)(?:[\\w\\d\\-./_]+)?)?";
    NSPredicate *urlPredic = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", urlRegEx];
    isValidURL = [urlPredic evaluateWithObject:url];

    return isValidURL;
}

现在我需要将具有 http://????.la 之类的表情符号的 URL 标记为有效 URL,但我没有找到与此相关的任何内容,有人知道我是怎么做到的吗应该修改我的方法来做我想要的吗?

提前致谢。

【问题讨论】:

标签: ios objective-c


【解决方案1】:

你可以使用这个: 例如http://www.xn--vi8hiv.ws/

+ (BOOL) urlIsValiad: (NSString *) url
{
    NSString *regex =
    @"((?:http|https)://)?(?:[A-Za-z0-9]{1,25}\\.)?[\\w\\d\\-_]+\\.\\w{2,3}(\\.\\w{2})?(/(?<=/)(?:[\\w\\d\\-./_]+)?)?";
    NSPredicate *regextest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];

   if ([regextest evaluateWithObject: url] == YES) {
       NSLog(@"URL is valid!");
   } else {
       NSLog(@"URL is not valid!");
   }
   return [regextest evaluateWithObject:url];
}

【讨论】:

  • 感谢 Ketan Odedra,但我已经尝试过了,但仍然无法正常工作
  • 你能告诉我你用的是哪个网址吗?
  • 就在我的代码下面:http://?.la
  • 同一个 url "xn--ls8h.la" 并且有效。我检查了它
  • 也许它对您有用,因为您正在将表情符号转换为文本。我正在尝试使用和不使用 http、https、www,但您的代码对我不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-29
相关资源
最近更新 更多