¿Cómo puedo eliminar una subcadena (un prefijo) de una matriz de elementos de cadena? (Quitar la cadena secundaria desde cada elemento)Eliminar el prefijo de una lista de cadenas
Respuesta
Uso de RegExp
y ^
para asegurarse de que es el prefijo y no sólo en algún lugar de la cadena:
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, '');
Ejemplo:
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
Simplemente itere en su lista de cadenas (con un bucle for, por ejemplo) y use el método replace
(details here)
¿Simplemente recorrerlos?
var list = ["foo", "bar", "meh"];
for(var i = 0; i < list.length; i++)
list[i] = list[i].substr(1, 1);
Muchas de las respuestas ya dadas están equivocados, porque van a eliminar la cadena de destino desde cualquier lugar en cada uno de los elementos (no sólo el principio). Aquí hay otro enfoque:
var str = "str_";
["str_one", "str_two_str_", "str_three"].map(function(el) {
return el.replace(new RegExp("^" + str), '');
});
Resultado:
["one", "two_str_", "three"]
O, si lo prefiere iteración sencilla (sin función de orden superior):
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), '');
La única pega con esto es que está instanciando un nuevo RegExp cada vez que se pulsa la función. Al menos en otros idiomas, esto es costoso. –
El número de respuestas sobre esta pregunta por 10k más SO es impresionante. –
Sólo por un poco de variedad:
substr = new RegExp('(^|\|)prefix_', 'g');
arr = arr.join('|').replace(substr, '').split('|')
edit - para mostrar cómo puede limitarse solo al prefijo con la expresión regular correcta.
Se podría utilizar la función de jQuery map
-
var arr = $.map(['a1', 'a2'],function (s) {
return s.replace(/^a/,'');
});
lo haría 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 si se necesita el apoyo del navegador completo para .map()
.
También puede usar .forEach()
si necesita conservar la matriz original.
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. prefijo común de cadenas
- 2. Eliminar cadenas vacías de una lista de cadenas
- 3. cómo eliminar cadenas vacías de la lista, luego eliminar valores duplicados de una lista
- 4. Lista de C++ eliminar cadenas duplicadas
- 5. Lista de cadenas Unicode
- 6. Eliminar cadenas de TStringList
- 7. Cómo eliminar la lista de palabras de una lista de cadenas
- 8. Python: Determine el prefijo de un conjunto de cadenas (similares)
- 9. eliminar prefijo objetivo-c mac
- 10. Eliminar cadenas duplicadas en matriz de cadenas
- 11. Eliminar el prefijo WWW de su sitio web
- 12. Erlang: aplanamiento de una lista de cadenas
- 13. Prefijo L para cadenas en C++
- 14. Cómo eliminar el prefijo en las teclas de matriz
- 15. C# o Java: ¿Prefijo cadenas con StringBuilder?
- 16. Extracción de cadenas duplicadas de una lista en Python
- 17. Lista de cadenas a una cadena
- 18. Búsqueda aproximada contra una lista de cadenas
- 19. ¿Cómo eliminar todas las secuencias de escape de una lista de cadenas?
- 20. DropDownListFor - muestra una lista simple de cadenas
- 21. cómo analizar rápidamente una lista de cadenas
- 22. Cómo pasar una lista de cadenas
- 23. Convertir Enumerable.Range a una lista de cadenas
- 24. devolver una lista de cadenas como JSONResult
- 25. Buscar subcadena en una lista de cadenas
- 26. ¿Cómo ordenar una lista de cadenas?
- 27. Filtrar una lista de cadenas según el contenido
- 28. Guardar una lista de cadenas únicas en el ArrayList
- 29. Eliminar una lista de objetos de otra lista
- 30. ¿Cómo eliminar el prefijo de una tabla para un modelo de Django?
La solicitud OP un prefijo sin embargo, su código actualmente lo reemplazará cualquier parte de la cadena – Joe
que acaba de decir subcadena. – Paulpro
Ella preguntó 'Eliminar prefijo de una lista de cadenas' – Joe