Помогите написать регулярное выражение
Проверка имени и фамилии (проверка правильности ввода, включая ввод имени и фамилии через пробел и с большой буквы) :help: :help: :help: :help:
|
<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> |
/^[А-ЯЁ][а-яё]+ [А-ЯЁ][а-яё]+$/
|
dmitriymar,
Поправил, Спасибо! |
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( "Все плохо!" ); } |
devote,
Меня зовут #$#%@#% 453465376 . |
Цитата:
|
devote,
Красиво, но модифицируецо хуже, к примеру, при добавке Отчества Чуть менее понятно для начинающего...? *Типо обсуждения |
devote,
Меня зовут ______ 007 . А вообще задача дуратская и сферическия в вакууме. Например вдруг меня зовут Heinrich Krüger? |
а можно вообще все упростить:
var name = prompt("Введите Имя Фамилию,\nчерез пробел и с большой буквы", 'Иван Денфер'); if ( !/^[А-ЯЁ][а-яё]+ [А-ЯЁ][а-яё]+$/g.test( name ) ) { alert( "Все плохо!" ); } |
Часовой пояс GMT +3, время: 21:18. |