-5

ポートでURLを検証したいので、検証するには正規表現が必要です。現在、私はこの表現を使用しています。

NSString *urlRegEx =@"(?i)(?:(?:https?|http):\\/\\/)?(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?";

しかし、それは時々検証されていません。

4

1 に答える 1

2

これが私がそれを行う方法です:

URL を見てみましょう:

https://some.long.domain.with.subdomains.com:12345/otherpath?queryparam=queryvalue

この文字列で NSURL を初期化しましょう:

NSURL *url = [NSURL URLWithString:theStringFromAbove];

URL が無効な場合、url変数は nil になります。それ以外の場合は、ポートを取得して、それが必要かどうかを確認します。

if (!url || [url port] != 12345) {
    NSLog(@"YOU SHALL NOT PASS");
}
于 2012-09-26T09:31:05.563 に答える