Używam wzorca regex, który otrzymałem z regexlib do sprawdzania poprawnych adresów URL. Na ich stronie można uzyskać wzór zgodny z Twoimi potrzebami. Wszystko działa świetnie na ich miejscu, jak tylko użyć deseniu w kopalni pojawia się komunikat o błędzie:Niestandardowy regex JavaScript w klasie znaków
Nieprawidłowy zakres w klasie znaków
wiem, że to błąd zazwyczaj oznacza, że łącznik jest omyłkowo używane do reprezentowania zakresu i nie jest właściwie uciekł. Ale w tym przypadku, ponieważ działa na ich stronie jestem zdezorientowany, dlaczego to nie działa na moje.
var urlRegex = new RegExp('^(?:(?:\.\./)|/)?(?:\w(?:[\w`~!$=;\-\+\.\^\(\)\|\{\}\[\]]|(?:%\d\d))*\w?)?(?:/\w(?:[\w`~!$=;\-\+\.\^\(\)\|\{\}\[\]]|(?:%\d\d))*\w?)*(?:\?[^#]+)?(?:#[a-z0-9]\w*)?$', 'g');
UWAGA: Jeśli masz zamiar przetestować regex z ich strony (stosując powyższy link) należy zmienić Regex Engine
rozwijanej aby Client-side Engine
i Engine
rozwijaną do Javascript
.
przeniosłem go do końca w obu klas postaci, ale teraz mogę 'Nieprawidłowe quantifier' – bflemi3
nie mogłem również dwukrotnie uciec łącznik czyli (' \\ -') zamiast przesuwać go do końca? – bflemi3
@ bflemi3 tak rzeczywiście możesz uciec. Sprawdź link, który podałem w ans – Anirudha