JavaScript. Muszę wyodrębnić drugą wartość liczbową w grupach "Wstawka":

Przykładowy ciąg:

"Box-Shadow: Wstawka 3px 4px 0PX # 444, Wstawy -1PX -2PX 0PX # 444,5px 6px 0px # 444, Wstawka 1px 1px 0px # 444"

Muszę więc wyodrębnić 4 i 1 z przykładowego ciągu.

Nie dostajaj tego.

0
WHITECOLOR 25 listopad 2013, 04:16

3 odpowiedzi

Najlepsza odpowiedź

Ten regex powinien zrobić sztuczkę: /inset -?\d+px (\d+)px/g

Jednak, ponieważ będziesz musiał użyć globalnego modyfikatora, aby złapać wszystkie zdarzenia, należy użyć metody exec w while zamiast używać match, w przeciwnym razie nie otrzymasz przechwycone grupy.

var match, regex = /inset -?\d+px (\d+)px/g,
    str = "box-shadow: inset 3px 4px 0px #444, inset -1px -2px 0px #444,5px 6px 0px #444, inset 1px 1px 0px #444";

while (match = regex.exec(str)) {
    console.log(match[1])
}

Jeśli chcesz dołączyć do meczów w tablicy, możesz użyć:

var matches = [];
while (match = regex.exec(str)) {
    matches.push(match[1]);
}
console.log(matches); // ["4", "1"]
1
Guilherme Sehn 25 listopad 2013, 01:16
/inset\s+-?\d+px\s+\+?(\d+)px/g
1
sqykly 25 listopad 2013, 01:06

Możesz użyć tego:

inset(?:(?: -\d+px)? (\d+)px){2}

Wynik znajduje się w pierwszej grupie wychwytywania.

1
Casimir et Hippolyte 25 listopad 2013, 01:06