Foros del Web » Programando para Internet » Javascript »

Expresiones regulares

Estas en el tema de Expresiones regulares en el foro de Javascript en Foros del Web. Hola, estoy haciendo un traductor y necesito saber cuando termina una palabra, que puede ser porque al final haya: espacio en blanco, coma, punto y ...
  #1 (permalink)  
Antiguo 03/09/2013, 21:06
 
Fecha de Ingreso: noviembre-2004
Ubicación: Medellín
Mensajes: 121
Antigüedad: 17 años
Puntos: 1
Mensaje Expresiones regulares

Hola, estoy haciendo un traductor y necesito saber cuando termina una palabra, que puede ser porque al final haya:
espacio en blanco, coma, punto y coma, comillas, ?

Este es el código, area es un textArea
textAreaContenido = document.formulario.area.value;
longitud = document.formulario.area.value.length;
for (var i=0;i<longitud;i++)
{
//Buscar signos de fin de palabra como espacio, coma, punto y coma...
if(textAreaContenido[i]==)
}

Me podrían ayudar a terminar ese if?
  #2 (permalink)  
Antiguo 04/09/2013, 04:50
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 8 años, 2 meses
Puntos: 578
Respuesta: Expresiones regulares

En javascript con un split() quizás:
Código Javascript:
Ver original
  1. var arr = text-area.value.split(" ");
  2. for(i=0; i<arr.length; i++){
  3. traducir(arr[i]);
  4. }
Con esto guardas las palabras separadas por espacio en un array, y luego le puedes pasar la función de traducir. Espero haberte ayudado.

Última edición por PHPeros; 04/09/2013 a las 04:56
  #3 (permalink)  
Antiguo 04/09/2013, 05:11
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 8 años, 2 meses
Puntos: 578
Respuesta: Expresiones regulares

La expresion regular para todos los delimitadores sería:
Código:
"[-/\s_.,|+&]"
Muy simple...

Última edición por PHPeros; 04/09/2013 a las 05:29
  #4 (permalink)  
Antiguo 05/09/2013, 20:15
 
Fecha de Ingreso: noviembre-2004
Ubicación: Medellín
Mensajes: 121
Antigüedad: 17 años
Puntos: 1
Respuesta: Expresiones regulares

split tiene el problema de que si una palabra tiene una coma por ejemplo, me la coge con ella:
lapiz,
y yo necesito sólo la palabra para buscarla en la base de datos: lapiz

Lo mejor sería hacer un recorrido hasta en contrar una expresión regular que sirva como fin de palabra.

He ensayado con esto, pero no me funciona
textAreaContenido = document.formulario.area.value;
var patron = /^-/\s_.,|+& $/;
alert(patron);

for (var i=0;i<textAreaContenido.length;i++)
{
alert(textAreaContenido[i]);
//Buscar signos de fin de palabra como espacio, coma, punto y coma...
if(textAreaContenido[i]==patron){
alert("Encontrado");
}


}
  #5 (permalink)  
Antiguo 06/09/2013, 05:31
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 8 años, 2 meses
Puntos: 578
Respuesta: Expresiones regulares

Cita:
Iniciado por PHPeros Ver Mensaje
En javascript con un split() quizás:
Código Javascript:
Ver original
  1. var arr = text-area.value.split(" ");
  2. for(i=0; i<arr.length; i++){
  3. traducir(arr[i]);
  4. }
Con esto guardas las palabras separadas por espacio en un array, y luego le puedes pasar la función de traducir. Espero haberte ayudado.
Pero te funciona con esto??, el código que has puesto no tiene sentido jaja tienes que hacerlo con la funcion match()... Bueno tampoco pidas tanto si no estas acostumbrado a utilizar regexp...
  #6 (permalink)  
Antiguo 06/09/2013, 09:04
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 12 años, 7 meses
Puntos: 1485
Respuesta: Expresiones regulares

buenas...
intenta con un patrón que capture letras y/o números teniendo como límite cualquier otro caracter.
Código:
var words = "string".match(/\b[\w\xc0-\xff]+\b/ig);
match devolvería un array con todas las palabras encontrada.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 09/09/2013, 06:50
 
Fecha de Ingreso: noviembre-2004
Ubicación: Medellín
Mensajes: 121
Antigüedad: 17 años
Puntos: 1
Respuesta: Expresiones regulares

Tienes razón phperos, usé split y luego un if para eliminar la coma de la palabra
var taDividido = document.formulario.area1.value.split(" ");

for(i=0; i<taDividido.length; i++){
chequear(taDividido[i]);
}


function chequear(j){
var posicionUltimo = j.length;
//Un vector tiene base cero, por eso hay que agregar -1
if(j[posicionUltimo-1]==",") {
alert("tiene Coma");
}
}

Todavía falta, pero así puedo dividir el contenido del textArea en palabras que no tengan coma

Etiquetas: expresiones, regulares, textarea
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:12.