Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   антимат функция для текстового поля (http://www.flasher.ru/forum/showthread.php?t=172243)

DaFive 05.12.2011 11:55

Да почему же? Словлю. Вот indexOfом не словлю.
Если по вашей схеме (массив - IndexOf) - то любая точка или символ в слове рушат сразу всю логику.
Код AS3:

var arr:Array = ['слово1', 'слово2'];
var str:String = 'Эй, Юзер, да иди ты на с.лово1!!!111';
trace(str.indexOf(arr[0])); // profit!

Убирать все лишнее из строки? Опять же регулярка. А зачем не использовать indexOf, если я все могу запихнуть в регулярку? Всё не словишь, я не спорю. Но с indexOf словить то, что можно, грамотно орудуя с регуляркой, просто невозможно.

TanaTiX 05.12.2011 12:14

Достаточно что-то рассказать про то, как "у стебля меняется со временем цвет" и т.п., как антимат начнет только мешать. Таких примеров великое множество.

DJDrugsounD 05.12.2011 12:29

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

Добавлено через 2 минуты
вот вам минимальный список исключений
Цитата:

рубл;нибал;абля;обля;оскорбля;шибал;гибал;хулига;требля;скреба;скребе;страх;стеб;хлеб;скипидар;любля;барсук

argoniummm 05.12.2011 16:41

Код AS3:

var bad_mass:Array = [слово1, слово2, слово3];
var str:String = "текст в котором есть слово1";
for (int i = 0; i<bad_mass.length; i++)
{
var result:Array = bad_mass[i].replace(str);
}

я так и не понял... Это правильный код? Главное убрать прямой мат...

DaFive 05.12.2011 17:08

Неправильный код.
Слова в массиве в кавычки, переменная в цикле объявляется не так и replace возвращает не Array, а String.
Код AS3:

str = str.replace(bad_mass[i], "");


argoniummm 05.12.2011 17:15

Код AS3:

var bad_mass:Array = ["слово1", "слово2", "слово3"];
var str:String = "текст в котором есть слово1";
for (int i = 0; i<bad_mass.length; i++)
{
str = str.replace(bad_mass[i], "");
}

Вот.

DaFive 05.12.2011 17:26

Вы гадаете? Ответ неверный, осталось 2 попытки:
Цитата:

1084: Syntax error: expecting semicolon before i. Line:3

GBee 05.12.2011 20:14

текст в котором есть сЛово1
текст в котором есть сЛоВо1
текст в котором есть сЛОВо1

с, х, о, е, у, а, м, т, М
c, x, o, e, y, a, m, t, M

DaFive 05.12.2011 20:21

для регистра toLowerCase() хватит, а с остальным беда.

MXPain 06.12.2011 02:48

вот вам мой фирменный регэксп

Код AS3:

var str:String=" здесь можно материться";
var pat:RegExp = /(\.*[хh]{1,}\.*|\[*[хh]{1,}\]*|[хh]{1,})(\.*[уu]{1,}\.*|\[*[уu]{1,}\]*|[уu]{1,})(\.*[йyяиею]{1,}\.*|\[*[йyяиею]{1,}\]*|[йyяиею]{1,})/gi
str.replace(pat, "*");



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

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