Wpis z mikrobloga

W js używam takiego regexp: /^[\p{Lu}][\p{Ll}]*$/u, który przepuszcza tylko 1 wyraz z wielkiej litery, dla wszystkich możliwych znaków. Wszystko działa na Operze i Chrome, jednak Firefox nie obsługuje tego \p{}.

Jest jakiś prosty sposób na ominięcie tego? A może po prostu cierpliwie poczekać aż Firefox zacznie to obsługiwać?

#programowanie #webdev #javascript #js #regexp
  • 19
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

/^[A-Z][a-z]+$/u


@Wiesiek1: Ja bym po prostu tak zrobił ¯\_(ツ)_/¯ ale za pewne masz jakieś edge-case gdzie takie proste wyrażenie nie zadziała. (polskie znaki, dwuczłonowe imie/nazwisko, etc)
  • Odpowiedz
@Wiesiek1: Mac Graff i o kant rzyci Twoja walidacja. Nie waliduj tak, bo się jeszcze przejedziesz (np. ja mam znajomego, którego pierwsze imię to "Piotr Jacek", tak, dwa imiona są pierwszym imieniem).
  • Odpowiedz
@Wiesiek1: jak ja nie lubię takich wadliwych walidacji, a potem nie możesz użyć emaila typu janusz+spam@costam.com bo ktoś nie pomyślał że to może być prawidłowy adres ( ͡° ʖ̯ ͡°)
  • Odpowiedz
@asciiterror: @Marmite: Czy wy umiecie czytać? XD Mam swoją apkę w której chcę mieć takie regexy i tyle. Wy nie będziecie z tego korzystać ;). Tak więc jak ktoś potrafi odpowiedzieć na pytanie powyżej to nadal czekam. Nie interesują mnie odpowiedzi "to nie ma sensu".

Tak @xetrov, to jest błędny tok myślenia, że na zadane pytanie udziela się odpowiedzi nie związanej z pytaniem ;).
  • Odpowiedz
@Wiesiek1: jeżeli odpowiadasz komuś tylko dokładnie to co mówi a nie próbujesz zrozumieć dlaczego to robi i skąd w ogóle to pytanie to masz złe podejście do ludzi. Sam zachowujesz się jak dzieciak teraz.

Ale jak już naprawdę potrzebujesz takiego regexu to masz kilka wyjść:
1) poczekać do nowszego standardu EcmaScript, w obecnym nie ma jeszcze klas Unicode
2) zamiast \p{Ll} dać [a-zęóąśłżźćń], tak samo \p{Lu}
3) zamiast \p{Ll} dać [a-z\u00C0-00D6\u00D8-\u00F6\u00F8-01BA...], ze
  • Odpowiedz
@asciiterror: No i wreszcie jakaś konkretna odpowiedź, na to czekałem od początku. Co do punktu 1 to orientujesz się może, czy wiadomo kiedy mniej więcej ten standard wejdzie?. A co do backendu to wiem, że trzeba tam też walidować, ale php to już ogarnia, więc tutaj nie ma problemu ;).
  • Odpowiedz