muszę dopasować podciąg X w Y smyczkową i trzeba dopasować X następnie rozebrać wszystko po nim w Y.JavaScript, aby dopasować podciąg i rozebrać wszystko po to
Odpowiedz
Kod
var text1 = "abcdefgh";
var text2 = "cde";
alert(text1.substring(0, text1.indexOf(text2)));
alert(text1.substring(0, text1.indexOf(text2) + text2.length));
pierwszego alarmu nie zawiera wyszukiwany tekst, drugi nie.
Wyjaśnienie
Wytłumaczę drugą linię kodu.
text1.substring(0, text1.indexOf(text2) + text2.length))
text1.substring(startIndex, endIndex)
Ten fragment kodu wykonuje każdy znak z startIndex do endIndex, gdzie 0 oznacza pierwszy znak. Tak więc w naszym kodzie, szukamy od 0 (start) i kończy się na:
text1.indexOf(text2)
ta zwraca pozycję znaku pierwszej instancji Text2 w tekście 1.
text2.length
ta zwraca długość tekstu 2, więc jeśli chcemy uwzględnić to w naszej zwróconej wartości, dodajemy to do długości zwracanego indeksu, podając nam zwrócony wynik!
var index = y.indexOf(x);
y = index >= 0 ? y.substring(0, y.indexOf(x) + x.length) : y;
var X = 'S';
var Y = 'TEST';
if(Y.indexOf(X) != -1){
var pos = parseInt(Y.indexOf(X)) + parseInt(X.length);
var str = Y.substring(0, pos);
Y = str;
}
document.write(Y);
Jeśli szukasz, aby dopasować tylko X w Y i wrócić tylko X, polecam korzystania match
.
var x = "treasure";
var y = "There's treasure somewhere in here.";
var results = y.match(new RegExp(x)); // -> ["treasure"]
results
albo będzie pusta tablica lub zawierają pierwsze wystąpienie x
.
Jeśli chcesz wszystko w y
aż do pierwszego wystąpienia x
, wystarczy trochę zmodyfikować wyrażenie regularne.
var results2 = y.match(new RegExp(".*" + x)); // -> ["There's treasure"]
Jak mogę to zrobić, jeśli w łańcuchu jest dwa "skarb" i chcę dopasować po ostatnim? – user2284570
- 1. javascript mecz podciąg po regexp
- 2. regex - Jak dopasować podciąg po X wystąpieniach wzorca?
- 3. Regex, aby uzyskać wszystko po pierwszym polu
- 4. podciąg i zwraca wartość po specyfiki
- 5. Jak dopasować wszystko do drugiego wystąpienia postaci?
- 6. Jak zamienić podciąg w JavaScript?
- 7. Regex dopasować wszystko pomiędzy ciągiem i karetki (^) bez występowania daszka (^)
- 8. Extract podciąg po pewnym wzorem
- 9. Regex, aby dopasować dokładną frazę, nic przed lub po frazie
- 10. Regex, aby dopasować i ograniczyć klasy znaków
- 11. Jak ustawić wartość wybierz, aby dopasować i tokenize jquery
- 12. Unix polecenia, aby usunąć wszystko po pierwszej kolumnie
- 13. Sed, aby usunąć wszystko po "." w pliku za pomocą polecenia *?
- 14. JavaScript otwarta nowa karta, i czekać na to, aby zamknąć
- 15. Jak używać wyrażeń regularnych, aby dopasować wszystko przed określonym typem słowa
- 16. JS RegEx, aby dopasować tylko niektóre wzorce.
- 17. RegEx potrzebne, aby dopasować numer do 2 miejsc po przecinku
- 18. Skróć NSString, aby dopasować rozmiar?
- 19. Jak analizować URL i wyodrębnić żądany podciąg
- 20. geom_density, aby dopasować geom_histogram binwitdh
- 21. Regex, aby dopasować symbole:! $%^& *() _ + | ~ - = `{} []:"; '<>?,./
- 22. ruby regex - jak dopasować wszystko, aż do znaku -
- 23. Jak naprawić wszystko, co powoduje to, aby zalać mój logcat: I/System.out: (HTTPLog) -Statyczne: isSBSettingEnabled fałszywe
- 24. Jak usunąć cały podciąg z '<' to '>' w Javie
- 25. Javascript, aby zamapować następny znak po "Mc"
- 26. Korzystanie Piękne Soup rozebrać tagów html z ciągiem
- 27. make: *** Brak reguły, aby cel "wszystko". Zatrzymaj
- 28. RegEx, aby wybrać wszystko pomiędzy dwoma znakami?
- 29. Wyrażenie regularne PHP, aby dopasować słowa
- 30. Wyrażenie regularne, aby dopasować zarówno względnych i bezwzględnych adresów URL
Nie trzeba używać tutaj 'parseInt'. 'indexOf' i' length' zawsze zwracają liczby całkowite. –
@Felix Kling: Tylko ze względu na mój zwyczaj używania parseInt(), kiedy wykonuję operacje arytmetyczne –