অদ্ভুতভাবে যথেষ্ট, আমি সত্যিই এখানে খুব সহজ সমাধান খুঁজে পেলাম না, তবুও হ্যান্ডলিং http
/ https
লিঙ্কগুলি পরিচালনা করার জন্য একটি ঠিক কাজ করেছি ।
মনে রাখবেন, এটি একটি নিখুঁত সমাধান নয়, তবে এটি নীচের ক্ষেত্রেগুলির জন্য কাজ করেছে। সংক্ষেপে বলা, Regex পরীক্ষা নির্ভর করবে URL দিয়ে শুরু হয় http://
বা https://
তারপর একটি ডট জন্য অন্তত 1 টি অক্ষর জন্য চেক, তারপর চেক, এবং তারপর আবার চেক অন্তত 1 টি অক্ষর জন্য। কোনও স্থানের অনুমতি নেই।
+ (BOOL)validateLink:(NSString *)link
{
NSString *regex = @"(?i)(http|https)(:\\/\\/)([^ .]+)(\\.)([^ \n]+)";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
return [predicate evaluateWithObject:link];
}
এই ইউআরএলগুলির বিরুদ্ধে ভ্যালিড পরীক্ষিত:
@"HTTP://FOO.COM",
@"HTTPS://FOO.COM",
@"http://foo.com/blah_blah",
@"http://foo.com/blah_blah/",
@"http://foo.com/blah_blah_(wikipedia)",
@"http://foo.com/blah_blah_(wikipedia)_(again)",
@"http://www.example.com/wpstyle/?p=364",
@"https://www.example.com/foo/?bar=baz&inga=42&quux",
@"http://✪df.ws/123",
@"http://userid:password@example.com:8080",
@"http://userid:password@example.com:8080/",
@"http://userid@example.com",
@"http://userid@example.com/",
@"http://userid@example.com:8080",
@"http://userid@example.com:8080/",
@"http://userid:password@example.com",
@"http://userid:password@example.com/",
@"http://142.42.1.1/",
@"http://142.42.1.1:8080/",
@"http://➡.ws/䨹",
@"http://⌘.ws",
@"http://⌘.ws/",
@"http://foo.com/blah_(wikipedia)#cite-",
@"http://foo.com/blah_(wikipedia)_blah#cite-",
@"http://foo.com/unicode_(✪)_in_parens",
@"http://foo.com/(something)?after=parens",
@"http://☺.damowmow.com/",
@"http://code.google.com/events/#&product=browser",
@"http://j.mp",
@"http://foo.bar/?q=Test%20URL-encoded%20stuff",
@"http://مثال.إختبار",
@"http://例子.测试",
@"http://उदाहरण.परीक्षा",
@"http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com",
@"http://1337.net",
@"http://a.b-c.de",
@"http://223.255.255.254"
এই ইউআরএলগুলির বিরুদ্ধে INVALID পরীক্ষিত:
@"",
@"foo",
@"ftp://foo.com",
@"ftp://foo.com",
@"http://..",
@"http://..",
@"http://../",
@"//",
@"///",
@"http://##/",
@"http://.www.foo.bar./",
@"rdar://1234",
@"http://foo.bar?q=Spaces should be encoded",
@"http:// shouldfail.com",
@":// should fail"
ইউআরএলগুলির উত্স:
https://mathiasbynens.be/demo/url-regex