09.06.2012, 16:11
|
Новичок на форуме
|
|
Регистрация: 09.05.2012
Сообщений: 8
|
|
Помогите написать регулярное выражение
|
|
09.06.2012, 17:22
|
без статуса
|
|
Регистрация: 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.
|
|
09.06.2012, 17:38
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
/^[А-ЯЁ][а-яё]+ [А-ЯЁ][а-яё]+$/
|
|
09.06.2012, 17:54
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
dmitriymar,
Поправил, Спасибо!
|
|
09.06.2012, 19:27
|
что-то знаю
|
|
Регистрация: 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( "Все плохо!" );
}
Последний раз редактировалось devote, 09.06.2012 в 19:41.
|
|
09.06.2012, 19:33
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,560
|
|
devote,
Меня зовут #$#%@#% 453465376 .
__________________
29375, 35
|
|
09.06.2012, 19:41
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от Aetae
|
devote,
Меня зовут #$#%@#% 453465376 .
|
поправил
|
|
09.06.2012, 19:48
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
devote,
Красиво, но модифицируецо хуже, к примеру, при добавке Отчества
Чуть менее понятно для начинающего...?
*Типо обсуждения
|
|
09.06.2012, 19:48
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,560
|
|
devote,
Меня зовут ______ 007 .
А вообще задача дуратская и сферическия в вакууме.
Например вдруг меня зовут Heinrich Krüger?
__________________
29375, 35
|
|
09.06.2012, 19:52
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
а можно вообще все упростить:
var name = prompt("Введите Имя Фамилию,\nчерез пробел и с большой буквы", 'Иван Денфер');
if ( !/^[А-ЯЁ][а-яё]+ [А-ЯЁ][а-яё]+$/g.test( name ) ) {
alert( "Все плохо!" );
}
Последний раз редактировалось devote, 09.06.2012 в 19:58.
|
|
|
|