Wytłumaczenie wyrażenia regularnego

0

Przeglądam sobie bibliotekę do animacji anime.js i sa tam fajne przykłady animacji napisów. Na przykład: https://tobiasahlin.com/moving-letters/#2

I jest tam linijka, która opakowuje każdą literkę ciągu tekstowego tagiem :

$(this).html($(this).text().replace(/([^\x00-\x80]|\w)/g, "<span class='letter'>$&</span>"));

Czy ktoś może przybliżyć działanie zapisu wewnątrz "replace" ?

2
  • [^\x00-\x80] - każdy znak, który leży w tabeli powyżej x80 (a ściślej nienależy do przedziału x00-x80)
  • | - lub
  • \w - jest alfanumerykiem bądź "_"
0

Dzięki, a wiesz jaką rolę spełnia $& ? Czy to jest właśnie każdy "wyłapany" element przez to wyrażenie regularne? Co to za konstrukcja? Co tam oznacza $ a co & ?

1

Polecam portal https://regex101.com/. Tam jest rozpisywane każde wyrażenie regularne na części pierwsze. Ponadto jest też opis, możliwość testowania i zamiany. Lepszej strony tego typu nie widziałem.

EDIT:
Nie wiem co to $& ale tutaj jest mowa o całym dopasowanym wyrażeniu.

0

regex101.com - rewelacja, zapomniałem o tej stronie... Tutaj też fajnie to jest wyjaśnione. Tak jak przeczuwałem, jest to każdy podciąg łańcucha znaków wyłapany przez wyrażenie. Bez flagi "g" spanem otoczona byłaby tylko pierwsza literka ciągu. Dzięki :)

2

$& - znaczy: całe pasujące wyrażenie
$1, $2, … - znaczą 1-szy, 2-gi, ... atom

Gdzie atom jest dowolnym fragmentem wyrażenia otoczonym nawiasami:
/(1-atom)(2-atom)/g
bo można sobie pobierać wybrane fragmenty pasującego ciągu i dowolnie je składać w zamienianym ciągu.

Jest jeszcze: https://regexr.com/ i pewnie jeszcze jakieś inne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1