Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Скрипт для автоцензуры текстовых полей (https://javascript.ru/forum/dom-window/29980-skript-dlya-avtocenzury-tekstovykh-polejj.html)

Deff 20.07.2012 01:14

Цитата:

Сообщение от Demath
ак заменить самую первую букву в <input type=text> на заглавную сразу после ввода пользователем?

Demath,
Гы поправил - зато нашел крупный недочет в своей методе (нет замены при заглавно-незаглавных буквах в запрещенных

Demath 20.07.2012 01:38

Цитата:

Сообщение от Deff (Сообщение 190121)
При копипасте вставьте два идентичных слова запрещенных - они не будут преобразованы - только первое

Вставил два подряд идентичных стоп-слова: помогите, помогите. Также вставлял и без запятых, и слитно.
Все преобразовывается (удаляется).

Deff 20.07.2012 11:28

Demath,
Выложите примеры тестовых слов со спецсимволами

Demath 24.07.2012 12:43

Я имел ввиду, чтобы нельзя было чередовать русские и латинские буквы (и с цифрами смеси), например, смесь

"пoмoгитe" (латинские выделены жирным)

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

Deff 24.07.2012 12:54

Demath,
Работа - не благодарная - обычно регеспы цензуры - задаются в Админке,
Извернуться с использованием - можно - как угодно, К примеру обрамить букву в тег черного цвета
Обычно цензура лишь уведомляет неопытного пользователя, а не спецом задавшегося целью обойти её, против лома есть только модерирование и бан

Demath 24.07.2012 16:10

Цитата:

Сообщение от Deff
Работа - не благодарная - обычно регеспы цензуры - задаются в Админке,
Извернуться с использованием - можно - как угодно, К примеру обрамить букву в тег черного цвета

Спасибо за наводку.

Цитата:

Сообщение от Deff
Обычно цензура лишь уведомляет неопытного пользователя, а не спецом задавшегося целью обойти её, против лома есть только модерирование и бан

Понятно, что этот скрипт не панацея, но, я думаю, что он поможет уменьшить количество некорректных заголовков процентов на 80.

Demath 26.07.2012 10:47

Цитата:

Сообщение от Demath
- удалении точки, если она является самым последним символом в строке?

С этим разобрался, вроде бы (?)

<!DOCTYPE html>
<html>
<head>
<meta http-equiv=content-type content="text/html; charset=utf-8">
<script type="text/javascript">
function deleteEndPoint(obj)
{   obj=document.getElementById('abcd');
     var str=obj.value;
     if(str.slice(-1)=='.') {obj.value=str.slice(0, -1);
          alert('Уважаемый пользователь!\n\nТочка в конце заголовка не ставится.')
         }
}
</script>
</head>
<body>
<input style="width: 400px;" id="abcd" onblur="deleteEndPoint(this)">
</body>
</html>

_________________________________________

Как получить следующий символ сразу после заданного?

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

devote 26.07.2012 11:50

Цитата:

Сообщение от Demath
Нужно, чтобы сразу после русской буквы нельзя было ввести ничего, кроме тоже русской буквы или пробела, или знака препинания.

<input id="inp" type="text" value="Test   text   now прИвет мир" style="width: 100%;" />
<script>
    document.getElementById('inp').onkeypress = function( e ) {
        e = e || window.event;
        var self = e.target || e.srcElement,
            caretPos = 0;

        if ( e.which == null ) {
            e.which = e.charCode != null ? e.charCode : e.keyCode;
        }

        if ( e.which == 32 || e.which == 9 || e.which == 8 || e.which == 0 &&
                /[\x21\x22\x23\x24\x25\x26\x27\x28\x2E]/.test( String.fromCharCode( e.keyCode ) ) ) {
            return;
        }

        if ( document.selection ) {
            self.focus();
            var sel = document.selection.createRange();
            sel.moveStart( 'character', -self.value.length );
            caretPos = sel.text.length;
        } else if ( self.selectionStart || self.selectionStart == '0' ) {
            caretPos = self.selectionStart;
        }

        var wordStart = self.value.lastIndexOf( " ", caretPos - 1 ) + 1,
            wordEnd = self.value.indexOf( " ", caretPos );

        wordEnd = ( wordEnd == -1 ? self.value.length : wordEnd ) - wordStart;

        // это наше слово над которым находится курсор
        var word = self.value.substr( wordStart, wordEnd ).replace( /^\s+|\s+$/g, '');

        var isLatin = !/[а-яё]/i.test( String.fromCharCode( e.keyCode ) );
        var isSymbol = !isLatin || /[a-zA-Z]/.test( String.fromCharCode( e.keyCode ) );

        return !word || !isSymbol || ( /[а-яё]+/i.test( word ) ? !isLatin : isLatin );
    }
</script>

Demath 26.07.2012 12:01

devote, спасибо!

devote 26.07.2012 12:02

исправил ошибки


Часовой пояс GMT +3, время: 18:30.