Dałem mu koleformę, ale jestem zakłopotany. Próbuję znaleźć kolejne ukośniki w ciągu sznurka. Reszta REGEX działa świetnie, ale ostatnia część, której nie mogę dostać.

Oto co mam:

val.match( /^[\/]|[~"#%&*:<>?\\{|}]|[\/|.]$/ ) 

I znalezienie tego wątku, postanowiłem zaktualizować mój kod bezskutecznie: Regex, aby znaleźć dwa lub więcej kolejnych znaków

val.match( /^[\/]|[\/]{2,}|[~"#%&*:<>?\\{|}]|[\/|.]$/ ) 

Czego potrzebuję, aby to zrobić?

Więc potrzebuję tego regex, aby szukać wielu znaków. To wyjaśniłoby pierwszą próbę kodu, którą podałeś:

val.match( /^[\/]|[~"#%&*:<>?\\{|}]|[\/|.]$/ ) 

To, czego potrzebuję do Również , jest wyglądać w sznurku dla podwójnego whowy. Tak, jestem dobrze świadomy indeksów i innych technik manipulacji ciągów, ale oznaczałem go regex, ponieważ musi być. Daj mi znać, jeśli potrzebujesz więcej informacji...

-2
iOnline247 29 listopad 2011, 05:35

5 odpowiedzi

Najlepsza odpowiedź

Oto odpowiedź.

val.match( /^[\/|_]|[~"#%&*:<>?\\{|}]|[\/]{2,}|[\/|.]$/ )

Nie jestem pewien, dlaczego druga wersja nie działa, ale może ktoś mógł rzucić trochę światła na materię.

Testy:

  1. _Text - Niepowodzenie wiodącego podkreślenia
  2. / Tekst - Faisted wiodący Whack
  3. Tekst ~ Moretext - Niepowodzenie zawiera nieprawidłowy znak: ~ "#% & *: <>? \ {|}
  4. Tekst // Tekst - Nieudany podwójny whack
  5. Tekst / - Niepowodzenie Whack Whack
  6. tekst. - Nieudany okres spływowy

Nie jestem pewien, dlaczego poniższy kod nie działa, ale przenieśli podwójny test whack i działa teraz:

val.match( /^[\/|_]|[\/]{2,}|[~"#%&*:<>?\\{|}]|[\/|.]$/ )
0
iOnline247 29 listopad 2011, 13:23

[\/]+ powinien pasować do jednego lub więcej / s.

2
Blender 29 listopad 2011, 01:39

Dlaczego nie robisz po prostu

/\/{2,}/g

? Twoje regexes w OP wydają się bardziej skomplikowane ...

  • \/ pasuje do dosłownego partytury odwrotnej ukośnika
  • {2,} opowiada o tym dwa razy lub więcej
  • /g sprawia, że wzorca jest globalny, dzięki czemu można znaleźć wszystkie wystąpienia wzoru w strunach.
2
hugomg 29 listopad 2011, 01:40
/(.)$1+/

Znaleźć jakieś miejsce, w którym pojedyncza postać występuje 2 lub więcej razy. (.) pasuje do pojedynczego znaku i przechwytuje tę postać na 1 USD, który następnie wymaga natychmiast po początkowej postaci, 1 lub więcej razy.

W przypadku ukradków możesz go uprościć

/\/{2,}/
/\/\/+/

Ale wtedy masz nachylony terytorium wykałaczki.

1
hugomg 29 listopad 2011, 01:47

Dlaczego nie używać indexof? Byłoby prostsze.

0
Richard Brightwell 29 listopad 2011, 01:40