¿Existe alguna manera fácil en jQuery para reemplazar la última aparición de un '_' (guión bajo) en una cadena dada?Reemplazar la última aparición de caracteres en la cadena
Respuesta
No necesita jQuery, solo una expresión regular.
Esto eliminará el último guión:
var str = 'a_b_c';
str = str.replace(/_([^_]*)$/,'$1'); //a_bc
Esto reemplazará con el contenido de la variable replacement
:
var str = 'a_b_c', replacement = '!';
str = str.replace(/_([^_]*)$/,replacement+'$1'); //a_b!c
+1 Hurtigkarl :))) – mplungjan
@Martin Jespersen: ¿y si el texto que debe reemplazarse no es el guión bajo sino el contenido de una variable llamada replaceMe? ¿Cómo se debe modificar la expresión regular? – Pierpaolo
@Pierpaolo: Debería crear la expresión regular usando un 'nuevo RegExp', leer todo al respecto aquí: https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions - Recuerde escaparse la variable 'replaceMe' por lo que no contiene caracteres especiales que alterarán la expresión regular –
No hay necesidad de jQuery ni expresiones regulares
str = str.substring(0,str.length-2)+otherchar
para reemplazar último caracter en una cadena
var pos = str.lastIndexOf('_');
str = str.substring(0,pos) + otherchar + str.substring(pos+1)
para reemplazar última subrayado
o utilizar una de las expresiones regulares Se le obtener en un minuto de alguien :)
+1 para "sin necesidad de jQuery". Es importante saber que JQuery no es la respuesta a todo.Javascript es un lenguaje de programación perfectamente capaz sin tener que empujar todo a través de jquery. – Spudley
@Spudley Tan cierto. Sin embargo, aquí en SO, ninguna respuesta JS está completa sin una versión jQuery;)) – mplungjan
'+ 1' para * no regex * & ***' lastIndexOf (...) 'realiza la búsqueda desde el FIN *** (mejor rendimiento) por lo que la expresión regular actualmente aceptada incluso * no puede * ser más rápida. –
reversa de la cadena, reemplazar el carbón, invertir la cadena.
Aquí es un puesto de inversión de la cadena en javascript: How do you reverse a string in place in JavaScript?
Pensé lo mismo, pero luego ejecuté un pequeño punto de referencia comparando la inversión de lastIndexOf: http://jsperf.com/replace-last – fakewaffle
que sea sencillo
var someString = "a_b_c";
var newCharacter = "+";
var newString = someString.substring(0, someString.lastIndexOf('_')) + newCharacter + someString.substring(someString.lastIndexOf('_')+1);
Usted puede utilizar el código
var str="test_String_ABC";
var strReplacedWith=" and ";
var currentIndex = str.lastIndexOf("_");
str = str.substring(0, currentIndex) + strReplacedWith + str.substring(currentIndex + 1, str.length);
alert(str);
¿Qué hay de ¿esta?
function replaceLast(x, y, z){
var a = x.split("");
a[x.lastIndexOf(y)] = z;
return a.join("");
}
replaceLast("Hello world!", "l", "x"); // Hello worxd!
Esto es muy similar a la respuesta de mplungjan, pero puede ser un poco más fácil (especialmente si usted tiene que hacer otra manipulación de cadenas justo después y desea mantenerlo como una matriz) De todos modos, yo sólo pensé' d ponerlo allí en caso de que alguien lo prefiera.
var str = 'a_b_c';
str = str.split(''); //['a','_','b','_','c']
str.splice(str.lastIndexOf('_'),1,'-'); //['a','_','b','-','c']
str = str.join(''); //'a_b-c'
El '_' se pueden intercambiar con el carbón que desea reemplazar
Y el '-' puede ser reemplazado con el carbón o la cadena que desea reemplazarlo con
- 1. Encuentra la última aparición de caracteres en una cadena
- 2. ¿Cómo reemplazar la última aparición de una subcadena en ruby?
- 3. Perl buscar y reemplazar la última ocurrencia de caracteres
- 4. Cómo reemplazar última aparición de caracteres de una cadena usando javascript
- 5. Reemplazar la última palabra en la cadena
- 6. rreplace - ¿Cómo reemplazar la última aparición de una expresión en una cadena?
- 7. PHP eliminar caracteres después de la última aparición de un caracter en una cadena
- 8. Reemplazar última parte de la cadena de
- 9. Reemplazar la primera aparición de cadena en Python
- 10. Cómo reemplazar la primera aparición de cadena en Java
- 11. Reemplazar toda la aparición de una cadena en un elemento
- 12. Eliminar cadena después de la última aparición de un carácter
- 13. ¿Reemplazar la primera aparición solamente de una cadena?
- 14. Reemplazar una sola aparición de la cadena Obj-c
- 15. Reemplazar caracteres no ASCII de la cadena
- 16. eliminar todo antes de la última aparición de un caracter
- 17. cadena reemplazar caracteres de escape
- 18. Uso de expresiones regulares para reemplazar solo la última aparición de un patrón con JS
- 19. Buscar y reemplazar enésima aparición de la expresión [entre corchetes] en la cadena
- 20. Cómo reemplazar todo PERO la primera aparición de un patrón en la cadena
- 21. Opcionalmente utilizando String.split(), divida una cadena en la última aparición de un delimitador
- 22. ¿Cómo encontrar la última aparición de un número en una cadena usando Ruby?
- 23. reemplazar caracteres especiales en cadena en java
- 24. Conseguir una subcadena después de la última aparición de un caracter en XSLT
- 25. Reemplazar varios caracteres en una cadena (XSLT)
- 26. Reemplazar la ruta en la cadena Powershell
- 27. ¿Cómo puedo dividir una cadena Perl solo en la última aparición del separador?
- 28. función de cadena PHP para obtener subcadena antes de la última aparición de un caracter
- 29. Cómo reemplazar caracteres en una cadena java?
- 30. Cómo buscar/reemplazar Regex solo la primera aparición en una cadena en .NET?
¿Es siempre el último carácter de la cadena? De lo contrario, eche un vistazo a string.lastIndexOf (searchstring, start) – skarmats
[no necesita jQuery] (http://meta.stackexchange.com/questions/45176/when-is-use-jquery-not-a -valid-answer-to-a-javascript-question). – zzzzBov
posible duplicado de [Cómo reemplazar la última aparición de caracteres en una cadena usando javascript] (http://stackoverflow.com/questions/3829483/how-to-replace-last-occurrence-of-characters-in-a-string -using-javascript) –