Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.06.2012, 16:11
Новичок на форуме
Отправить личное сообщение для denfer12 Посмотреть профиль Найти все сообщения от denfer12
 
Регистрация: 09.05.2012
Сообщений: 8

Помогите написать регулярное выражение
Проверка имени и фамилии (проверка правильности ввода, включая ввод имени и фамилии через пробел и с большой буквы)
Ответить с цитированием
  #2 (permalink)  
Старый 09.06.2012, 17:22
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<script type="text/javascript">
function CallError(){
 alert('Некорректный Ввод Имени/Фамилии!')
 //setTimeout('FIO_Tst_()',200) //Если нужно зациклить
}
function FIO_Tst_(){
var NamAndFam = prompt("Введите Имя Фамилию,\nчерез пробел и с большой буквы", 'Иван Денфер');
NamAndFam = NamAndFam.replace(/^[\s]*([^\s].*[^\s])[\s]*/ig,'$1')
NamFamArr=NamAndFam.split(/[\s]+/g);
if(NamFamArr.length!=2||NamFamArr[0].length<1||NamFamArr[1].length<1){CallError();return false}
if(NamFamArr[0].search(/^[А-ЯЁ][а-яё]*$/g)!=0){CallError();return false}
if(NamFamArr[1].search(/^[А-ЯЁ][а-яё]*$/g)!=0){CallError();return false}
NamAndFam=NamFamArr[0]+' '+NamFamArr[1];
return NamAndFam}
NamAndFam=FIO_Tst_()
if(NamAndFam) {alert('>'+NamAndFam+'<');}
</script>

Последний раз редактировалось Deff, 09.06.2012 в 18:13.
Ответить с цитированием
  #3 (permalink)  
Старый 09.06.2012, 17:38
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

/^[А-ЯЁ][а-яё]+ [А-ЯЁ][а-яё]+$/
Ответить с цитированием
  #4 (permalink)  
Старый 09.06.2012, 17:54
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

dmitriymar,
Поправил, Спасибо!
Ответить с цитированием
  #5 (permalink)  
Старый 09.06.2012, 19:27
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

var name = prompt("Введите Имя Фамилию,\nчерез пробел и с большой буквы", 'Иван Денфер');

var test = ( name = (name + "").replace( /^\s+|\s(?=\s)|\s+$/g, '' ) ).
    replace( /([^\s]{1})(.*?(\s|$))/ig, function( all, firstChar, otherChar ) {

    return ( firstChar.toUpperCase() + otherChar.toLowerCase() ).replace( /[^\wа-яё\s]+/ig, '' );
});

if ( test !== name || test.split( " " ).length != 2 ) {
    alert( "Все плохо!"  );
}
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 09.06.2012 в 19:41.
Ответить с цитированием
  #6 (permalink)  
Старый 09.06.2012, 19:33
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,491

devote,
Меня зовут #$#%@#% 453465376 .
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 09.06.2012, 19:41
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Aetae
devote,
Меня зовут #$#%@#% 453465376 .
поправил
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #8 (permalink)  
Старый 09.06.2012, 19:48
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

devote,
Красиво, но модифицируецо хуже, к примеру, при добавке Отчества
Чуть менее понятно для начинающего...?
*Типо обсуждения
Ответить с цитированием
  #9 (permalink)  
Старый 09.06.2012, 19:48
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,491

devote,
Меня зовут ______ 007 .

А вообще задача дуратская и сферическия в вакууме.
Например вдруг меня зовут Heinrich Krüger?
__________________
29375, 35
Ответить с цитированием
  #10 (permalink)  
Старый 09.06.2012, 19:52
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

а можно вообще все упростить:
var name = prompt("Введите Имя Фамилию,\nчерез пробел и с большой буквы", 'Иван Денфер');

if ( !/^[А-ЯЁ][а-яё]+ [А-ЯЁ][а-яё]+$/g.test( name ) ) {
    alert( "Все плохо!" );
}
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 09.06.2012 в 19:58.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите составить регулярное выражение для числа с плавающей точкой boomrest Общие вопросы Javascript 4 25.02.2015 11:17
Помогите правильно написать регулярное выражение fredrsf Общие вопросы Javascript 4 14.02.2012 14:30
Помогите написать регулярное выражение! Dorian_bs Общие вопросы Javascript 7 09.12.2011 09:12
регулярное выражение, помогите serhanters jQuery 2 12.07.2011 10:14
как правильно написать регулярное выражение? Lucius Общие вопросы Javascript 5 17.04.2011 16:34