регулярное выражение в верхнем регистре - PullRequest
6 голосов
/ 27 марта 2010

Можно ли преобразовать соответствие шаблону регулярного выражения в нижний регистр?

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

Вывод должен выглядеть так: "Привет, ребята"

Ответы [ 7 ]

7 голосов
/ 14 сентября 2010
var html = '<HTML><HEAD><BODY>TEST</BODY></HEAD></HTML>';
var regex = /<([^>]*)>/g;
html = html.replace(regex, function(x) { return x.toLowerCase() });
alert(html);
7 голосов
/ 28 марта 2010

Вы можете сделать что-то подобное, но замените шаблон именно тем, что вам нужно:

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 является внутренней переменной, ссылающейся на параметры функции. Надеюсь, это поможет,

Lance

4 голосов
/ 10 июня 2011

в нижний регистр

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

и в верхний регистр

s/[a-z]/\u&/g
1 голос
/ 18 февраля 2011

Изменить все верхние английские буквы на нижние в ActionSctipn 3

var pattern:RegExp = /[A-Z]/g;
contentstr = contentstr.replace(pattern,function(a:String,b:int,c:String):String { return a.toLowerCase() } );
0 голосов
/ 15 мая 2013

Если вы хотите преобразовать полную строку в нижний регистр, используйте .toLowerCase() или .toUpperCase() в javascript.

Если вы хотите заменить определенную букву строчными буквами в строке, тогда лучше использовать Regex.

0 голосов
/ 30 августа 2012

вы можете использовать функцию в качестве второго аргумента для 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: как передать найденное значение string.replace в функцию?

0 голосов
/ 27 марта 2010

Нет, это невозможно с помощью регулярных выражений. Вы можете заменить A на a, B на b и т. Д. Не все сразу.

Почему бы просто не использовать toLowerCase()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...