2010-03-27 23 views
6

È possibile trasformare la corrispondenza del modello di regexp in minuscolo?regex maiuscolo in minuscolo

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

uscita dovrebbe essere così: "Ciao ragazzi"

risposta

7

si può fare qualcosa di simile, ma sostituire il modello con esattamente quello che vi serve:

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"; 

Questo arguments variabile è una variabile interna riferimento ai parametri di funzione. Speranza che aiuta,

Lance

+0

Thx, ci provo, ma sembra promettente :) – luccio

0

No, che non è possibile utilizzando espressioni regolari. È possibile solo sostituire A con a, B con b, ecc. Non tutto in una volta.

Perché non utilizzare semplicemente toLowerCase()?

+0

Voglio sostituire i tag html, e quelli sono in maiuscolo, ma XHTML consente solo i tag in lettere minuscole, quindi ho bisogno di loro in minuscolo – 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

Cambio tutti in inglese le lettere superiore a quella inferiore in ActionSctipn 3

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

in minuscolo

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

e in maiuscolo

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

's/'non funzionerà in javascript. – loretoparisi

0

è possibile utilizzare una funzione come secondo argomento per String.Replace

nel tuo caso si potrebbe usare

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

Per saperne di più qui Javascript: how to pass found string.replace value to function?

0

Se si desidera convertire completa stringa in minuscolo, quindi utilizzare .toLowerCase() o .toUpperCase() in javascript.

Se si desidera sostituire una lettera particolare con caratteri minuscoli in una stringa, allora Regex è migliore.

Problemi correlati