Jak usunąć podciąg (prefiks) z tablicy elementów łańcuchowych? (Usuwanie ciąg sub z każdego elementu)Usuń prefiks z listy ciągów znaków
Odpowiedz
Stosując RegExp
i ^
aby zapewnić to przedrostek, a nie tylko gdzieś w ciągu:
var arr = ['a1', 'a2', 'a54a'];
for(var i = 0, len = arr.length; i < len; i++) {
arr[i] = arr[i].replace(/^a/, '');
}
arr; // '1,2,54a' removing the 'a' at the begining
var i;
for(i = 0; i < arr.length; i++)
arr[i] = arr[i].replace(substr, '');
przykład:
var arr = ['test1', '2test', '3test3'];
// Use only one of these lines
var substr = 'test'; // This is for substrings
var substr = /^test/; // This is for prefixes only
var i;
for(i = 0; i < arr.length; i++)
arr[i] = arr[i].replace(substr, '');
console.log(arr); // Prints ["1", "2", "33"] to console
Po prostu wykonaj iterację na liście ciągów (np. Z pętlą for) i użyj metody replace
(details here)
Po prostu przechodzisz przez nie?
var list = ["foo", "bar", "meh"];
for(var i = 0; i < list.length; i++)
list[i] = list[i].substr(1, 1);
Wiele odpowiedzi już podane są błędne, ponieważ oni usunąć ciąg docelowego z dowolnego miejsca w każdym z elementów (nie tylko początek). Oto inne podejście:
var str = "str_";
["str_one", "str_two_str_", "str_three"].map(function(el) {
return el.replace(new RegExp("^" + str), '');
});
Wynik:
["one", "two_str_", "three"]
Lub, jeśli wolisz proste iteracji (bez funkcji wyższego rzędu):
var str = "str_";
var list = ["str_one", "str_two_str_", "str_three"];
for (var i = 0; i < list.length; i++)
list[i] = list[i].replace(new RegExp("^" + str), '');
Jedyną wołowiną jest to, że tworzysz nowe wyrażenie RegExp za każdym razem, gdy funkcja zostanie trafiona. Przynajmniej w innych językach jest to drogie. –
Liczba odpowiedzi na to pytanie o 10 tys. Plus SO jest niesamowita. –
tylko dla niektórych odmian:
substr = new RegExp('(^|\|)prefix_', 'g');
arr = arr.join('|').replace(substr, '').split('|')
edycja - aby pokazać, jak ograniczyć się do przedrostka z właściwym regexp.
Można użyć jQuery map
funkcję -
var arr = $.map(['a1', 'a2'],function (s) {
return s.replace(/^a/,'');
});
zrobiłbym this:
var element = document.getElementsByTagName('p');
for(i in element){
str = element[i].innerHTML;
str = str.replace(/^pre_/,'');
element[i].innerHTML = str;
}
var pre = 'prefix_';
my_arr = my_arr.map(function(v){ return v.slice(pre.length); });
See MDN jeśli potrzebne jest pełne wsparcie dla .map()
przeglądarki.
możesz również użyć .forEach()
, jeśli chcesz zachować oryginalną tablicę.
var pre = 'prefix_';
my_arr.forEach(function(v,i){ my_arr[i] = v.slice(pre.length); });
function trimPrefix(str, prefix) {
if (str.startsWith(prefix)) {
return str.slice(prefix.length)
} else {
return str
}
}
var prefix = "DynamicPrefix"
trimPrefix("DynamicPrefix other content", prefix)
- 1. Usuń prefiks z ciągiem
- 2. Losowy ciąg znaków z listy ciągów znaków
- 3. Usuń ciągi znaków z TStringList
- 4. Formatowanie wielowierszowe dla ciągów znaków w C# (prefiks z @)
- 5. Usuń stały prefiks/przyrostek z ciągu znaków w Bash
- 6. Usuń prefiks cel-c mac
- 7. Konwertowanie ciągów znaków na listy w pythonie
- 8. Zamówienie SQL według listy ciągów znaków?
- 9. Przechowywanie listy ciągów znaków w Lucene.NET
- 10. Szybki sposób inicjalizacji listy numerowanych ciągów znaków?
- 11. Usuń pozycję z listy
- 12. Sortowanie listy ciągów znaków z określonymi ustawieniami w pythonie
- 13. Używanie LINQ do wyodrębniania ints z listy ciągów znaków
- 14. Tablica ciągów ciągów znaków
- 15. Efektywny algorytm sortowania ciągów znaków
- 16. Usuń ns2 jako domyślny prefiks przestrzeni nazw
- 17. Konwersja wyjścia z itertools.permutations z listy krotek do listy ciągów znaków
- 18. GetHashCode() z kluczami ciągów znaków
- 19. Eliksir Usuń duplikaty z listy
- 20. Python Usuń produkt z listy
- 21. usuń z listy po przefiltrowaniu
- 22. Usuń wszystkie przedmioty z listy
- 23. Usuń "u" z listy pytonów
- 24. Usuń HTML z ciągu znaków
- 25. Usuwanie pustych elementów z wektora ciągów znaków
- 26. Usuń URL prefiks z String (http:/www, etc.)
- 27. Usuń pozycje specyficzne dla wiersza z listy
- 28. Podzbiór na podstawie listy ciągów znaków za pomocą grepl()?
- 29. Python - krótki sposób rozpakowywania listy dla operatora formatowania ciągów znaków?
- 30. Zapisywanie listy dostępnych ciągów znaków w udostępnionych preferencjach
Żądanie OP prefiks jednak Twój kod aktualnie będzie go zastąpić dowolnym miejscu w ciągu – Joe
Powiedział tylko podciąg. – Paulpro
Zapytała "Usuń prefiks z listy strun" – Joe