Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Регулярные выражения


Автор: Gold Dragon 26.12.2004, 12:01
Нужна помощь, совсем запутался...

Мне нужно проверить поля
- только текст [a-zA-Zа-яА-Я]
- только цифры [0-9] скобки, тире

var a = document.form.fam.value
var rez1 = new RegExp (/[a-zA-Zа-яА-Я]/g);
rez1.test(a) - пропускает если есть и цифры и буквы.

Что я делаю не так?

Автор: Black 26.12.2004, 12:29
JavaScript:

Код

<script>
function proverka(){
a=document.forms['x'].elements['a'].value;
if (!/[A-Za-zА-Яа-я]/.exec(a)) { alert('Ты кого хочешь обмануть???'); }
else { alert('Ок данные'); }
}
</script>


HTML-код:

Код

<form name=x>
<input type=text name=a>
<input type=button onclick='proverka();'>
</form>


Это уж точно не пропустит цифры :-) больше того этот код вообще не пропустит ничего кроме букв.

Автор: Sardar 26.12.2004, 15:28
Red Dragon ты рег не правильный задал:
Код

var a = document.form.fam.value
var rez1 = /^[a-zA-Zа-яА-Я]+$/g; //от начала и до конца
rez1.test(a);


PHP-DIRECTOR у тебя та же проблема + ты используешь exec не совсем там где нужно. Лучше test.

Автор: Black 26.12.2004, 17:34
Цитата
Sardar: ты используешь exec не совсем там где нужно

а почему??? где его лучше использовать???

Автор: Sardar 26.12.2004, 18:19
Метод exec выдаёт массив найденных строк + всё что было в захватывающих скобках. Если массив пуст, то приведение его к boolean даст false. Но ведь это не совсем согласно логике(моей логике smile )
Также метод test не сохраняет массива и не выбирает строки, следовательно работает быстрее.

Автор: Gold Dragon 26.12.2004, 18:36
Sardar
а вообще, регулярные выражения везде поодерживаются, т.е. проблем не будет.. Просо я их никогда не использовал, а теперь вот решился smile

Автор: Sardar 26.12.2004, 19:26
Red Dragon чувствуешь силу? =)
Теперь осталось разобратося со всеми возможностями, т.к. в JS реги чуть урезанней чем настоящие PCRE. А следующим шагом будет изучение формальных грамматик и реализация собственных регов(не на JS естественно), за одно и уйдёт не правильное мнение что реги медленные smile

Автор: Aliance 26.12.2004, 19:26
Red Dragon
Нет. Не будет. Они поддерживаються большинством совр. брацзеров. Они очень компактны и удобны smile Будущее за регами, АднАзнАчнА =)

Автор: Gold Dragon 26.12.2004, 20:03
Большое Спасибо!

С наступающим...

Автор: Aliance 26.12.2004, 20:41
Вот еще почитай:
http://forum.vingrad.ru/index.php?showtopic=36336


Цитата(Red @ 26.12.2004, 20:03)
С наступающим...

smile тебя тоже)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)