Próbuję dopasować prostą domenę: example.comRegex do prostej domeny
Ale wszystkie kombinacje tego.
jaki sposób mogę to zrobić na pokrycie:
https://example.com http://www.example.com etc.
Próbuję dopasować prostą domenę: example.comRegex do prostej domeny
Ale wszystkie kombinacje tego.
jaki sposób mogę to zrobić na pokrycie:
https://example.com http://www.example.com etc.
^https?://([\w\d]+\.)?example\.com$
za pomocą kodu:
var result = /^https?:\/\/([a-zA-Z\d-]+\.){0,}example\.com$/.test('https://example.com');
// result is either true of false
poprawiłem go dopasować jak "http://abexample.com"
Prawdopodobnie można użyć, aby dopasować część nazwy domeny adresu URL:
/^(?:http(?:s)?:\/\/)?(?:[^\.]+\.)?example\.com$/
To pasuje do żadnego z następujących ciągów:
https://example.com
http://www.example.com
http://example.com
https://example.com
www.example.com
example.com
UPDATE: Aby dopasować pełnego wykorzystania URL (nie tylko nazwa domeny część):
/^(?:http(?:s)?:\/\/)?(?:[^\.]+\.)?example\.com(?:/.*)?$/
wielkie dzięki, ale wydaje się nie działać? zobacz http://jsfiddle.net/v4WVU/ – Andy
Właściwie to działa, zobacz tam: http://jsfiddle.net/v4WVU/3/ Próbujesz dopasować 'location.href', który był' http: // fiddle. jshell.net/_display/'. Jak napisałem powyżej, RegEx służy do dopasowywania nazwy domeny, a nie pełnego adresu URL. – anubhava
Bardziej ogólny przykład użyłem :
/http(?:s)?:\/\/(?:[\w-]+\.)*([\w-]{1,63})(?:\.(?:\w{3}|\w{2}))(?:$|\/)/i
Należy zauważyć, że rozwiązanie to nie robi” t odebrać właściwą etykietę dla TLD o 5 znakach. Przykład:
http://mylabel.co.uk
Czy być odbierane jako 'CO', a nie 'mylabel', lecz
http://mylabel.co
będzie prawidłowo dopasowany jako 'mylabel'. Regex był wystarczająco dobry dla mnie nawet z tym ograniczeniem.
Należy pamiętać, że limit 63 znaków dla etykiety jest specyfikacją specyfikacji RFC. Mam nadzieję, że pomoże to każdemu, kto szuka takiej samej odpowiedzi w przyszłości.
następujące prace w Javie,
^(http:|https:|)[/][/]([^/]+[.])*example.com$
i pasuje do przypadków testowych, a nie przypadki meczu jak
Czy trzeba użyć pojedynczego wyrażenia regularnego? Użycie istniejącego parsera adresów URL, a następnie indywidualne przeglądanie części będzie mniej podatne na błędy. –
@muistooshort dobrze pierwotnie miałem '/^https?: \/\ /.*? \.? Facebook \ .com \ //' ale myślałem, że to może nie działać we wszystkich przypadkach? – Andy
Pozwoliłoby to niektórym błędnym adresom URL (np. 'Http: // a_b.facebook.com /'), ale to nie może być problem. –