Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Reemplazar todas las cadenas de texto

Estas en el tema de Reemplazar todas las cadenas de texto en el foro de Javascript en Foros del Web. Saludos, estoy intentado crear una especie de parser de BBcode a Html (ya que no consegui ningun script en internet), consegui esto: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 20/10/2013, 10:34
 
Fecha de Ingreso: septiembre-2010
Mensajes: 24
Antigüedad: 13 años, 6 meses
Puntos: 0
Reemplazar todas las cadenas de texto

Saludos, estoy intentado crear una especie de parser de BBcode a Html (ya que no consegui ningun script en internet), consegui esto:


Código Javascript:
Ver original
  1. //Cadena original
  2. var texto = "Hola Caracola";
  3.  
  4. //Reemplazamos todas las "a" por "o"
  5. texto = texto.replace(/a/g, 'o');

Lo intente adaptar y quedo asi:

Código Javascript:
Ver original
  1. texto = texto.replace(/[b]/g, "<strong>")

El problema es que no funciona, solo reemplaza la "B", luego si coloco replace(/[/g,"<strong>") de modo que solo sustituya el corchete, pero tampoco funciona

Se por que sucede el problema, pero no se como solucionarlo, alguna idea ? quizas otro metodo para reemplazar ? o quizas me podrian pasar un script de un parser ya hecho, cual sea la solucion, será bienvenida

Gracias :)
  #2 (permalink)  
Antiguo 20/10/2013, 10:42
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Reemplazar todas las cadenas de texto

Claaaaaaro... Esque [] sirve para los patrones en regex, así que tienes que aportar su significado literal y no funcional utilizando la barra invertida "\":

Código:
/\[b\]/g
http://www.regular-expressions.info/

Saludos
  #3 (permalink)  
Antiguo 20/10/2013, 10:56
 
Fecha de Ingreso: septiembre-2010
Mensajes: 24
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Reemplazar todas las cadenas de texto

Gracias, lo pude solucionar, ahora tengo un ultimo problema, tengo este html

Código HTML:
Ver original
  1. <textarea id="holi" cols="40" rows="20">[b]hola[/b] </textarea>
  2. <button onclick="parsear()"> test </button>
  3. <span id="resultado"> </span>

y este javascript

Código Javascript:
Ver original
  1. function parsear(){
  2. var texto = document.getElementById("holi").value
  3. texto = texto.replace(/\[b\]/g, "<strong>")
  4. texto = texto.replace(/\[\/b\]/g, "</strong>")
  5. texto = texto.replace(/\[align=center\]/g, "<p align=center>")
  6. texto = texto.replace(/\[\/align\]/g, "<p align=center>")
  7. document.getElementById("resultado").innerHTML = texto
  8. alert(texto);
  9. }

Lo que hago es escribir algo en un campo de texto, y que al hacer click en el boton, se escriba en un span, asi se muestra ya "convertido", el problema es que por ejemplo si escribo:

Hola
como
estas


Se muestra como: "hola como estas" osea, no respeta los saltos de linea

quizas es por el span ? no tengo ni idea :|

Saludos :)
  #4 (permalink)  
Antiguo 20/10/2013, 11:01
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Reemplazar todas las cadenas de texto

Perdón. Te refieres al texto del alert??

Última edición por PHPeros; 20/10/2013 a las 11:08
  #5 (permalink)  
Antiguo 20/10/2013, 11:10
 
Fecha de Ingreso: septiembre-2010
Mensajes: 24
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Reemplazar todas las cadenas de texto

Listo, muchisimas gracias, ahora si anda todo perfecto, porfin podre completar mi proyecto, por eso me gusta esta pagina, ayudan a las personas por mas absurdos que sean sus problemas (por ejemplo yo soy todo un novato) :D

Una vez mas gracias

PD: no, no me referia al alert, eso solo era para ver como iba quedando el codigo en html, quedo todo perfecto

Etiquetas: cadenas, funcion, html, reemplazar, todas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:54.