2010-03-27 137 views
6

是否可以将正则表达式模式匹配转换为小写?正则表达式大写到小写

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

输出应该是这样的:“嗨,大家好”

回答

7

你可以做这样的事情,但你需要的东西更换模式:

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

arguments变量是内部变量引用函数的参数。希望帮助,

兰斯

+0

Thx,我会试试看,但它看起来很有前途:) – luccio 2010-03-29 08:13:48

0

不,使用正则表达式是不可能的。您只能用aBb等替换A,等等。不是一次全部。

为什么不简单地使用toLowerCase()

+0

我想要替换html标签,这些都是大写,但XHTML只允许小写标签,因此我需要它们小写 – luccio 2010-03-27 15:35:43

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

更改所有大写英文字母来降低ActionSctipn 3

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

为小写

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

,并为大写

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

's /'将无法在JavaScript中工作。 – loretoparisi 2016-10-21 08:01:42

0

你可以使用函数作为针对你的情况与string.replace

第二个参数,你可以使用

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

阅读更多关于它在这里 Javascript: how to pass found string.replace value to function?

0

如果你想转换完成字符串变为小写,然后在javascript中使用.toLowerCase().toUpperCase()

如果你想用一个字符串中的小写字母替换一个特定的字母,那么Regex更好。