Robię aplikację typu SPA - front w React, API w .NET Core.
Chciałbym swoje regexy dot. np. wymaganej formy hasła, formatu nazwy użytkownika itp. trzymać w jednym miejscu, a nie dublować je na froncie i na backendzie. Czyli robię sobie constanty z regexami, używam ich w atrybutach nad propercjami w modelach, a oprócz tego udostępniam w API do pobrania przez front.
W C#:
public const string Name = @"^(?=.{1,40}$)[a-zA-Z]+(?:[-'\s][a-zA-Z]+)*$";
Do walidacji po stronie klienta używam biblioteki "Yup" (w taki sposób: lastName: ...Yup.string().matches("^(?=.{1,40}$)[a-zA-Z]+(?:[-'s][a-zA-Z]+)*$")... , ale dostaję błąd: Argument of type '"^(?=.{1,40}$)[a-zA-Z]+(?:[-'s][a-zA-Z]+)*$"'' is not assignable to parameter of type 'RegExp'.). Dodatkowo podczas zapisu pliku linter wywala slasha sprzed znaku "s".
Problem wydaje się być popularny, ale jakoś nie mogę niczego znaleźć. Tzn są porady jak to samemu ręcznie przekonwertować, ale ja szukam jakiejś biblioteki (najlepiej dla .NET, ale od biedy może być po stronie klienta w js). Zawsze mi było nie po drodze z wyrażeniami regularnymi i do tej pory nie mogę ich na szybko pojąć, więc nawet ręcznie nie daję rady tego przeklepać, a tym bardziej napisać samemu konwerter. Samo dodatnie slashy na początku i końcu nie wystarcza.