Comunidad de diseño web y desarrollo en internet online

Problema con RegExp AS3

Citar            
MensajeEscrito el 16 Jun 2010 05:21 pm
Hola a todos!

Tengo un problemilla.

Estoy usando un pattern para buscar carácteres y borrarlos.

Código ActionScript :


var oldText    :String = " Este es el texto de prueba. ";
var newText    :String;

private static var elpattern:RegExp = new RegExp("[ ,.;:!¡?¿]","gi");

newText = oldText.replace(thePattern,"");


trace(newText) //resultado: "Esteeseltextodeprueba"


Mi problema es que quiero que me conserve los espacios que haya entre texto y texto pero no al principio ni al final.

Es decir el resultado que quiero es:

Código ActionScript :

trace(newText) //resultado: "Este es el texto de prueba"

¿Como podría hacer esto?

Muchas gracias!
manu

Por sayid00

22 de clabLevel



 

Barcelona

firefox
Citar            
MensajeEscrito el 17 Jun 2010 07:00 am
Bueno,

He descubierto como hacerlo a través de un amigo. Pero en dos lineas:

Código ActionScript :

var clear1:RegExp = new RegExp("^[ ,.;:!¡?¿]","gi"); //Comienzo de la cadena.
var clear2:RegExp = new RegExp("[ ,.;:!¡?¿]$","gi"); //Final de la cadena.


Ahora lo que no se, es como hacerlo en una línea.

Saludos!
manu.

Por sayid00

22 de clabLevel



 

Barcelona

firefox
Citar            
MensajeEscrito el 18 Jun 2010 12:57 pm
Hola,
yo también lo haría usando 2 expresiones regulares:

Código ActionScript :

var oldText:String = "   .,/)&(  Este es el texto de prueba. .;,  ?!¡ ";
var newText:String;

var pattern1:RegExp = /[^\w]+/;
var pattern2:RegExp = /[^\w]+$/;

newText = oldText.replace(pattern1, "");
newText = newText.replace(pattern2, "");

trace(newText);//Este es el texto de prueba

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Jun 2010 01:37 pm

isidoro escribió:

Hola,
yo también lo haría usando 2 expresiones regulares:

Código ActionScript :

var oldText:String = "   .,/)&(  Este es el texto de prueba. .;,  ?!¡ ";
var newText:String;

var pattern1:RegExp = /[^\w]+/;
var pattern2:RegExp = /[^\w]+$/;

newText = oldText.replace(pattern1, "");
newText = newText.replace(pattern2, "");

trace(newText);//Este es el texto de prueba


Gracias! esta es mucho mejor que la expresion regular que hecho!

muchisimas gracias!
manu.

Por sayid00

22 de clabLevel



 

Barcelona

firefox
Citar            
MensajeEscrito el 09 Jul 2010 01:35 pm

isidoro escribió:

Hola,
yo también lo haría usando 2 expresiones regulares:

Código ActionScript :

var oldText:String = "   .,/)&(  Este es el texto de prueba. .;,  ?!¡ ";
var newText:String;

var pattern1:RegExp = /[^\w]+/;
var pattern2:RegExp = /[^\w]+$/;

newText = oldText.replace(pattern1, "");
newText = newText.replace(pattern2, "");

trace(newText);//Este es el texto de prueba


He descubierto de que esta manera también elimina los caracteres con acentos.
Por ejemplo la palabra "útil" la dejaría así "til". :(

Como sería para que no cogiera estas.

Saludos!
manu

Por sayid00

22 de clabLevel



 

Barcelona

chrome
Citar            
MensajeEscrito el 15 Jul 2010 09:15 am
Tienes razón, la verdad es que cuando se crean este tipo de cosas sólo se tiene en cuenta el idioma inglés. Si quieres tener un control total sobre los caracteres que serán eliminados es mejor que los incluyas tú mismo. Más o menos sería así (no están incluídos todos los símbolos):

Código ActionScript :

var pattern1:RegExp = /[ !"·$%&\/()=,.-;:_´ç¨Ç^*`+¡'?¿]+/;
var pattern2:RegExp = /[ !"·$%&\/()=,.-;:_´ç¨Ç^*`+¡'?¿]+$/;

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 15 Jul 2010 10:24 am
Muchas gracias!

Voy a probar :)

Saludos,
manu

Por sayid00

22 de clabLevel



 

Barcelona

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.