Sử dụng phương thức String.StartsWith() để kiểm tra chuỗi có bắt đầu bằng tiền tố URL cụ thể hay không.
Mã nguồn
using System;
class Demo {
static void Main() {
string input = "https://example.com/new.html";
// Kiểm tra cả www và non-www
if (input.StartsWith("https://www.example.com") ||
input.StartsWith("https://example.com")) {
Console.WriteLine("True - Là URL hợp lệ của example.com");
} else {
Console.WriteLine("False - Không phải URL mong đợi");
}
}
}
Kết quả
True - Là URL hợp lệ của example.com
Overload hữu ích của StartsWith
// Không phân biệt hoa/thường
input.StartsWith("https://example.com", StringComparison.OrdinalIgnoreCase);
// So sánh theo culture cụ thể
input.StartsWith("https://example.com", true, CultureInfo.InvariantCulture);
Cách mạnh hơn: Regex / Uri
// Regex - kiểm tra pattern URL chung
bool isUrl = Regex.IsMatch(input, @"^https?://[\w.-]+(:\d+)?(/.*)?$");
// Uri.TryCreate - validate và parse chuẩn RFC
if (Uri.TryCreate(input, UriKind.Absolute, out Uri uri)
&& (uri.Scheme == "http" || uri.Scheme == "https")) {
Console.WriteLine("Valid URL: " + uri.Host);
}
So sánh
| Phương pháp | Dùng cho | Ưu điểm | Nhược điểm |
|---|---|---|---|
StartsWith | Kiểm tra prefix cố định | Nhanh, đơn giản | Chỉ kiểm tra đầu chuỗi |
Regex | Pattern phức tạp | Linh hoạt, mạnh | Chậm hơn, phức tạp |
Uri.TryCreate | Validate URL chuẩn | Chuẩn RFC, parse thành phần | Chấp nhận URL rộng (ftp, file...) |
Lưu ý
StartsWithphân biệt chữ hoa/thường mặc định — dùngOrdinalIgnoreCasecho URL.- URL có thể có port, path, query, fragment —
StartsWithchỉ kiểm tra đầu. - Để validate URL người dùng nhập: dùng
Uri.TryCreate+ kiểm tra Scheme.