Tôi đang cố gắng khớp một tên miền đơn giản: example.comRegex để khớp tên miền đơn giản
Nhưng tất cả các kết hợp của nó.
Làm thế nào tôi sẽ làm điều này để trang trải:
https://example.com http://www.example.com etc.
Tôi đang cố gắng khớp một tên miền đơn giản: example.comRegex để khớp tên miền đơn giản
Nhưng tất cả các kết hợp của nó.
Làm thế nào tôi sẽ làm điều này để trang trải:
https://example.com http://www.example.com etc.
^https?://([\w\d]+\.)?example\.com$
sử dụng mã:
var result = /^https?:\/\/([a-zA-Z\d-]+\.){0,}example\.com$/.test('https://example.com');
// result is either true of false
tôi cải thiện nó để phù hợp như "http://abexample.com"
Bạn có thể sử dụng để chỉ khớp với phần tên miền của URL:
/^(?:http(?:s)?:\/\/)?(?:[^\.]+\.)?example\.com$/
Nó sẽ phù hợp với bất kỳ chuỗi kí tự sau:
https://example.com
http://www.example.com
http://example.com
https://example.com
www.example.com
example.com
UPDATE: Để phù hợp với sử dụng đầy đủ URL (không chỉ là miền tên phần):
/^(?:http(?:s)?:\/\/)?(?:[^\.]+\.)?example\.com(?:/.*)?$/
cảm ơn rất nhiều nhưng nó dường như không hoạt động? xem http://jsfiddle.net/v4WVU/ – Andy
Trên thực tế nó hoạt động, xem ở đó: http://jsfiddle.net/v4WVU/3/ Bạn đang cố gắng khớp 'location.href' là' http: // fiddle. jshell.net/_display/'. Như tôi đã viết ở trên RegEx là cho phù hợp với tên miền không đầy đủ URL. – anubhava
Một ví dụ chung chung hơn tôi đã sử dụng :
/http(?:s)?:\/\/(?:[\w-]+\.)*([\w-]{1,63})(?:\.(?:\w{3}|\w{2}))(?:$|\/)/i
Lưu ý rằng giải pháp này không ' t chọn đúng nhãn cho 5 TLD ký tự. Ví dụ:
http://mylabel.co.uk
sẽ được đón như 'co' thay vì 'mylabel', nhưng
http://mylabel.co
sẽ được xuất hiện một cách chính xác là 'mylabel'. Regex là đủ tốt cho tôi ngay cả với giới hạn này.
Lưu ý rằng giới hạn 63 ký tự cho nhãn là đặc điểm kỹ thuật RFC. Hy vọng điều này sẽ giúp bất cứ ai tìm kiếm câu trả lời tương tự trong tương lai.
Các công trình sau đây trong Java,
^(http:|https:|)[/][/]([^/]+[.])*example.com$
và phù hợp với trường hợp thử nghiệm của bạn, và không trường hợp trận đấu như
Bạn phải sử dụng một regex đơn? Sử dụng trình phân tích cú pháp URL hiện tại và sau đó xem xét các phần riêng lẻ sẽ ít bị lỗi hơn. –
@muistooshort cũng ban đầu tôi có '/^https?: \/\ /.*? \.? Facebook \ .com \ //' nhưng nghĩ rằng nó có thể không hoạt động trong mọi trường hợp? – Andy
Điều đó sẽ cho phép một số URL không hợp lệ thông qua (chẳng hạn như 'http: // a_b.facebook.com /') nhưng điều đó có thể không thành vấn đề. –