Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   String.replace() ? (http://www.flasher.ru/forum/showthread.php?t=121011)

Bruiser 05.02.2009 10:54

String.replace() ?
 
Подскажите. Что-то по документации не разобрался.
Нужно из стринга, например "%*tester*%" удалить все % и *.
Вот так не получается:
Код:

var str:String = "%*tester*%";
var regExp:RegExp = new RegExp("*%","g");           
str = str.replace(regExp,"");
trace(str);


_Smirnoff 05.02.2009 11:30

Попробуй
Код AS3:

new RegExp('\*%|\%\*', 'g');

А так в помощь http://gskinner.com/RegExr/

Bruiser 06.02.2009 13:17

только вот так
Код:

var regExp:RegExp = /\%|\*/g;
И вот еще один занимательный сайт на эту тему
http://ryanswanson.com/regexp/

_Smirnoff 08.02.2009 23:01

Bruiser, ваш вариант уступит в производительности, и так окончательный вариант

Код AS3:

var regExp:RegExp =  /\*%|%\*/g;   // путем присвоения литерала
var regExp:RegExp = new RegExp('\\*%|%\\*', 'g'); // с помощью конструктора


etc 09.02.2009 00:13

Без разницы, вообще говоря, с использованием конструктора или нет.

wvxvw 09.02.2009 05:04

Разница будет в десятитысячные доли секунды... вариант с вызовом конструктора будет совсем немного, но дольше :) но в случае, если вам не нужно, например, в цикле создавать тысячи регулярных выражений, то разницы вы не заметите.

Bruiser 09.02.2009 10:43

Если выполнить код
Код:

var str:String = "%*te*st%er*%";
var regExp:RegExp =  /\*%|%\*/g;
str = str.replace(regExp,"");

тогда str будет "te*st%er"

если же
Код:

var str:String = "%*te*st%er*%";
var regExp:RegExp = /\%|\*/g;
str = str.replace(regExp,"");

str будет как надо "tester".

MaxL 09.04.2009 20:48

А для AS 2.0 есть что-то? У меня только 2.0 :(

etc 09.04.2009 22:50

Были реализации RegExp и на AS2.

MaxL 09.04.2009 22:55

Вот примерчик из столетней книжки
Код AS1/AS2:

re = new RegExp("shoot|crud|darn", "gi");
str = new String ("Shoot! More darn regular expression crud!");
rStr = str.replace(re, "%#@$");
trace(rStr);

Дебагер мне пишет что нету "RegExp" и в помине, а моя программа работает только с ас2


Часовой пояс GMT +4, время: 11:45.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.