МИР ВАШЕМУ ДОМУ!!!
57 / 58 / 7
Регистрация: 01.04.2009
Сообщений: 890
Записей в блоге: 1
1

Запрет ввода пробела только в начале текста (разрешить между словами)

24.08.2011, 10:11. Показов 10006. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте друзья.

Помогите составить регулярное выражение.
В поле запретил ввод пробела (в начале поля, чтоб пользователь не вводил пустые значения), но получилось что во всем поле не могу ввести пробел. К примеру не могу ввести "Магомед Магомедов".
Как сделать запрет только в начале слова?.

Вот само регулярное выражение + функция для наглядности:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
[ \.`":'\$@~;]
 
 
 function proverka_fio(input) 
     {
        var value = input.value; 
        var rep = /[ \.`":'\$@~;]/; 
        if (rep.test(value)) 
     { 
            value = value.replace(rep, ''); 
            input.value = value; 
         } 
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.08.2011, 10:11
Ответы с готовыми решениями:

Дана строка текста, между словами текста минимум один пробел.Написать программу, которая между словами текста ставит по три точки!!
Дана строка текста, между словами текста минимум один пробел.Написать программу, которая между...

В тексте между словами вместо одного пробела вставить по 3 пробела
Написать программу на tasm c вводом и выводом: в тексте между словами вместо одного пробела...

Запрет ввода только минуса в ячейке StringGrid, и запрет на ввод минуса между цифрами
Ребята,очень нужна ваша помощь!Нужно сделать запрет ввода ТОЛЬКО минуса в ячейке и запрет на ввод...

Запрет ввода пробела в Textbox
Собственно сабж. Как осуществить запрет ТОЛЬКО пробела в Textbox?

9
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
24.08.2011, 15:30 2
Javascript
1
2
3
4
5
6
function proverka_fio(input)
{
    var value = input.value,
        newValue = value.replace(/^[\s.`":'$@~;]*|[\s.`":'$@~;]*$/g, '');
    if (newValue != value) input.value = newValue;
}
1
МИР ВАШЕМУ ДОМУ!!!
57 / 58 / 7
Регистрация: 01.04.2009
Сообщений: 890
Записей в блоге: 1
26.08.2011, 10:22  [ТС] 3
Не получается.
В начале пробел правда не дает вводить.
Между словами надо пробел вводить, но не в начале
0
Просто любитель
626 / 464 / 120
Регистрация: 20.01.2011
Сообщений: 865
Записей в блоге: 2
26.08.2011, 14:46 4
Попробуйте ваш код с таким исправлением:

Javascript
1
var rep=/^\s|[\.`":'\$@~;]/
1
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
26.08.2011, 14:47 5
Цитата Сообщение от A_R_S Посмотреть сообщение
Не получается.
В начале пробел правда не дает вводить.
Модификатор g точно не забыли написать?
1
МИР ВАШЕМУ ДОМУ!!!
57 / 58 / 7
Регистрация: 01.04.2009
Сообщений: 890
Записей в блоге: 1
26.08.2011, 15:13  [ТС] 6
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Модификатор g точно не забыли написать?
есть он.

Добавлено через 7 минут
Сделал так, как было сказано выше про g

Javascript
1
2
3
4
5
6
7
   function proverka_fio(input)
   {
    var srtExp = /^[\s.`":'$@~;]*|[\s.`":'$@~;]*$g/; 
    var value = input.value,
        newValue = value.replace(srtExp, '');
    if (newValue != value) input.value = newValue;
   }
Все спасибо все большое.
0
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
26.08.2011, 15:19 7
Цитата Сообщение от A_R_S Посмотреть сообщение
/^[\s.`":'$@~;]*|[\s.`":'$@~;]*$g/
/шаблон/модификаторы
Надо /.../g
И еще надо + вместо *
Javascript
1
/^[\s.`":'$@~;]+|[\s.`":'$@~;]+$/g
1
МИР ВАШЕМУ ДОМУ!!!
57 / 58 / 7
Регистрация: 01.04.2009
Сообщений: 890
Записей в блоге: 1
26.08.2011, 15:25  [ТС] 8
Цитата Сообщение от Vovan-VE Посмотреть сообщение
И еще надо + вместо *
а для чего это ? +
0
Просто любитель
626 / 464 / 120
Регистрация: 20.01.2011
Сообщений: 865
Записей в блоге: 2
26.08.2011, 15:29 9
Vovan-VE, ваш код почему-то заменяет только пробелы. Кстати, моё регулярное выражение, предложенное ранее тоже, в этом отношении, работает неверно. Пошаманил над вашим примером и всё заработало:

Javascript
1
2
3
4
function proverka_fio(input)
{
    input.value = input.value.replace(/^\s|[.`":'$@~;]/g, '');
}
По-моему самый короткий вариант регулярного выражения получился.
1
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
26.08.2011, 15:56 10
Цитата Сообщение от GuardCat Посмотреть сообщение
По-моему самый короткий вариант регулярного выражения получился.
Вот только смысл у него совершенно иной: пробельный символ (1 штука) в начале или вон те, что перечислены, где угодно в строке.

Добавлено через 1 минуту
Цитата Сообщение от A_R_S Посмотреть сообщение
а для чего это ? +
* ноль и более повторений.
+ одно и более повторений.
1
26.08.2011, 15:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.08.2011, 15:56
Помогаю со студенческими работами здесь

Запрет ввода Пробела в Edit
Имеется Edit, в который пользователь вводит данные. Если пользователь оставил поле пустым, то в...

TOraQuery запрет вставки, разрешить только редактирование
На TDBGridEh отображаются некие данные. как сделать что бы эти данные можно было только...

Замена пробела между словами
Доброго времени суток! Подскажите, пожалуйста, как заменить пробел между словами на другой символ,...

Заменить интервалы между словами на 2 пробела
Здравствуйте, нужно заменить интервалы между словами на 2 пробела. Только нужно сделать с помощью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru