Помогите написать регулярное выражение
Проверка имени и фамилии (проверка правильности ввода, включая ввод имени и фамилии через пробел и с большой буквы) :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, время: 01:21. |