2010-03-27 95 views
6

¿Es posible transformar la coincidencia de patrón regexp a minúscula?regex mayúscula a minúscula

var pattern:RegExp; 
var str:String = "HI guys"; 
pattern = /([A-Z]+)/g; 
str = str.replace(pattern, thisShouldBeLowerCase); 

salida debería verse como esto: "Hola chicos"

Respuesta

7

se puede hacer algo como esto, pero reemplazar el patrón con exactamente lo que necesita:

public static function lowerCase(string:String, pattern:RegExp = null):String 
{ 
    pattern ||= /[A-Z]/g; 
    return string.replace(pattern, function x():String 
    { 
     return (arguments[0] as String).toLowerCase(); 
    }); 
} 

trace(lowerCase('HI GUYS', /[HI]/g)); // "hi GUYS"; 

Eso arguments variable es una variable interna hace referencia a los parámetros de la función. Esperamos que ayuda,

lanza

+0

Thx, lo intentaré, pero parece prometedor :) – luccio

0

No, eso no es posible el uso de expresiones regulares. Solo puede reemplazar A con a, B con b, etc. No todos a la vez.

¿Por qué no usar simplemente toLowerCase()?

+0

Quiero reemplazar las etiquetas html, y éstas están en mayúsculas, pero XHTML solo permite etiquetas minúsculas, por lo tanto las necesito en minúsculas – luccio

7
var html = '<HTML><HEAD><BODY>TEST</BODY></HEAD></HTML>'; 
var regex = /<([^>]*)>/g; 
html = html.replace(regex, function(x) { return x.toLowerCase() }); 
alert(html); 
1

Cambiar todas las letras inglesas superior a la inferior en ActionSctipn 3

var pattern:RegExp = /[A-Z]/g; 
contentstr = contentstr.replace(pattern,function(a:String,b:int,c:String):String { return a.toLowerCase() }); 
4

a minúsculas

s/[A-Z]/\l&/g 

y en mayúsculas

s/[a-z]/\u&/g 
+0

's/'no funcionará en javascript. – loretoparisi

0

se puede utilizar una función como segundo argumento para String.Replace

en su caso, usted podría utilizar

var pattern:RegExp; 
var str:String = "HI guys"; 
pattern = /([A-Z]+)/g; 
str = str.replace(pattern, function(search, match1) { 
    return match1.toLowerCase() } 
); 

leer más sobre esto aquí Javascript: how to pass found string.replace value to function?

0

Si desea convertir completa cadena a minúsculas luego use .toLowerCase() o .toUpperCase() en javascript.

Si desea reemplazar una letra en particular con minúscula en una cadena, entonces Regex es mejor.

Cuestiones relacionadas