¿Alguno de los frameworks de JavaScript existentes tiene una función no regex replace()
, o ya se ha publicado en la web como una función única? Por ejemplo, quiero reemplazar "@!#$123=%"
y no quiero preocuparme sobre qué personajes escapar. La mayoría de los idiomas parecen tener ambos métodos para hacer reemplazos. Me gustaría ver esta simple cosa agregada.JavaScript Non-regex Replace
Respuesta
i puede ser mal entendido su pregunta, pero JavaScript tiene un replace()
var string = '@!#$123=%';
var newstring = string.replace('@!#$123=%', 'hi');
edición: (ver comentarios) la 5ª edición parece tener esta información en ella, a pesar de que no aparece cuando yo link directly a él. aquí está la parte relevante:
El método replace() realiza una operación de búsqueda y reemplazo. Toma una expresión regular como primer argumento y una cadena de reemplazo como segundo argumento. Busca la cadena en la que se llama para coincidencias con el patrón especificado. Si la expresión regular tiene el indicador g establecido, el método replace() reemplaza todas las coincidencias en la cadena con la cadena de reemplazo; de lo contrario, reemplaza solo la primera coincidencia que encuentre. Si el primer argumento para reemplazar() es una cadena en lugar de una expresión regular, el método busca literalmente esa cadena en lugar de convertirla en una expresión regular con el constructor RegExp(), como lo hace search().
Tuve exactamente el mismo problema al buscar un método javascript string regex no regex(). Mi solución fue usar una combinación de split() y join():
"some text containing regex interpreted characters: $1.00".split("$").join("£");
lo que da:
"personajes un poco de texto que contiene expresiones regulares interpretadas: 1.00 €"comparar con replace():
"some text containing regex interpreted characters: $1.00".replace(new RegExp("$"),"£")
que da extrañamente:
"un texto que contiene expresiones regulares interpretado personajes: $ £ 1.00"
No hay suficientes ejemplos en línea que le muestren el método de reemplazo simple - "texto que contiene caracteres interpretados con expresiones regulares: $ 1.00". replace ("$", "£"); – BuddyJoe
Eso es programación web: reinventar la rueda. JavaScript 'replace()' es una broma mala. Gracias por este truco. Creo que es la mejor solución. +1 – user2173353
«$» significa fin de línea en la expresión regular! Entonces, no hay nada extraño con 'RegExp (" $ ")' que coincida con el final de su línea como se esperaba. Debería haber escapado de su dólar antes de enviarlo a RegExp: 'RegExp (" \ $ ")' – Yvan
Prueba esto:
function replaceAllTemp(str,find, replace) {
var ignoreCase=true;
var _token;
var token=find;
var newToken=replace;
var i = -1;
if (typeof token === "string") {
if (ignoreCase) {
_token = token.toLowerCase();
while((
i = str.toLowerCase().indexOf(
token, i >= 0 ? i + newToken.length : 0
)) !== -1
) {
str = str.substring(0, i) +
newToken +
str.substring(i + token.length);
}
} else {
return this.split(token).join(newToken);
}
}
return str;
};
- 1. Javascript replace match group
- 2. JavaScript regex replace - escaping slashes
- 3. .replace JavaScript no reemplaza todas las ocurrencias
- 4. JavaScript .replace sólo reemplaza primer partido
- 5. ¿por qué no funciona mi JavaScript .replace()?
- 6. JavaScript regex replace - pero solo parte de una cadena combinada?
- 7. ¿Cómo reemplazo un asterisco en Javascript usando replace()?
- 8. Javascript replace() no funciona en VS - carácter desconocido
- 9. ¿Cuál es la diferencia entre .replace y -replace in powershell?
- 10. (g) vim replace regex
- 11. NotePad ++ replace problem
- 12. C++ character replace
- 13. Vim global replace (line)
- 14. Multiple Regex replace
- 15. sed replace literal TAB
- 16. String Find/Replace Algorithm
- 17. Multiple Replace en VB.NET
- 18. Ha esfinge replace docstring texto
- 19. SQLAlchemy - INSERT O REPLACE equivalente
- 20. Django equivalente de SQL REPLACE
- 21. Powershell replace lose line breaks
- 22. sed o awk multiline replace
- 23. Emacs query-replace-regexp multiline
- 24. Sintaxis de emacs replace-regexp
- 25. PHP Can static :: replace self ::?
- 26. Java String replace no funciona
- 27. Función Regex Replace con Razor
- 28. Emacs Case Sensitive Replace String
- 29. Android SQLite INSERT o REPLACE
- 30. Diferencias entre replace (/ [^ a-z0-9]/gi, '') y replace (/ [^ a-zA-Z0-9]/g, '')
eh. tal vez estaba viendo una versión anterior de "Javascript: The Definitive Guide" que solo mostraba el ejemplo de expresiones regulares. así que nunca probé el código anterior. ahora me siento realmente tonto. -10 puntos geniales para mí. – BuddyJoe
sucede, acabo de encontrar un método lastIndexOf() ... * suspiro * ... – Owen
¿Alguien puede consultar la versión más reciente de "Javascript: la guía definitiva"? ¿Este tipo de ejemplo ahora está incluido? – BuddyJoe