IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   Проверка формы на JavaScript :) (http://www.imho.ws/showthread.php?t=45759)

smap 11.12.2003 16:12

Проверка формы на JavaScript :)
 
Вообщем сделал функцию которая проверяет содержит ли поле, только алфавит(Русский, Английский), цифры и знаки "_" и "-".
Сам код:
function n_check(n) {
check = /^([A-z]|[А-я]|[0-9]|_|-)+$/;
if (!check.test(n)) return false;
return true; }
вопрос, в следующем как мне сделать так, чтоб функция проверяла содержит ли поле цифры, знаки "_" и "-", и Алфавит (Английский или(!) Русский), т.е. нельзя чтоб было Английский и Русский одновременно :)

немного подправил ))) просто немного не ту функцию кинул...

Saruman 11.12.2003 16:20

smap
Цитата:

check = /^[A-z]|[А-я]|_|-+$/;
Разбей на две функции - одна для английского алфавита, другая - для русского, и сверяй с ними по очереди, если строка содержит и те, и другие символы - то она не совпадет ни с одним из выражений.

smap 11.12.2003 17:56

"и сверяй с ними по очереди" я об этом думал :)
но смотри: допустим мы напишем: "smap999" вроде правильно :)

проверяем первой функцией на английский, все ок :) функция возвращает true
а вот дальше идет функция на проверку русского и тут вот облом, хоп и функция возвращает false :(

тоже самое будет если наоборот.. по началу одно а потом другое :)

smap 12.12.2003 23:40

мне кто-нибудь поможет? или нет...
тут не кого .. кто умеет генерировать идеи ))))

Psionic Vision 21.12.2003 05:28

А что если написать A-я? Не выйдет?

Добавлено через 2 минуты:
В смысле - английское "A" - русское "я"

hempsmoke 21.12.2003 05:31

Neo
:)

Psionic Vision 21.12.2003 06:00

hempsmoke
Чего? Я серьезно. Я если нет, то я не виноват, поскольку с JS я начал знакомиться не так-то давно...

hempsmoke 21.12.2003 06:10

Neo
отбросим знания Js
если бы было так все легко, раздували бы здесь тему? :)

V0iD 21.12.2003 13:46

smap
Цитата:

а вот дальше идет функция на проверку русского и тут вот облом, хоп и функция возвращает false
Ну дык правильно! Если у тебя получится один false и один true, значит строка соответствует. А если 2 false - нет.
А вообще если такой проверки нету в скрипте (куда ты данные эти посылаешь), то такую феньку обойти очень просто...

smap 21.12.2003 17:20

V0iD спасиб, за идею держи 5 :)

воть:
function nik_check(n) {
check_rus = /^([А-Яa-я0-9_Ёё]|-)+$/;
check_eng = /^([A-Za-z0-9_]|-)+$/;
rus = check_rus.test(n);
eng = check_eng.test(n);
if (rus || eng) return true;
return false;
// (c) SMAP =)
}

и не надо типо говорить почему [А-Яa-я0-9_Ёё] так, а не [А-я0-9_]
потому что во втором случаи “ё” не распознается и еще знак “`” проходит
хз почему =(

типо так для справки как ету функцию использовать:
<form name=f method="POST">
<u>N</u>ik:<input type="text" name="nik"><br>
</form>
<script>
var error = new Array();
error["nik"] = "Бла бла бла =)"
function f.nik.onblur() {
if (this.value!="") {
if (!nik_check(this.value)) {alert(error[this.name]); this.focus(); }
</script>


Часовой пояс GMT +4, время: 21:16.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.