JavaScript

Создание проверки заполнения полей формы js

Пытаюсь проверять заполнение поля "имя" в контактной форме через регулярку js, но что-то не получается.

Поле формы:



Скрипт:

function validateName(input) {
var re1 = new RegExp("[а-яА-Я] ");

if(input.value != $re1){
input.setCustomValidity("Введите свое имя на русском языке! ");
}
else {
input.setCustomValidity("");
}
}
неправельное сравнение, ты сравиваеш (в if) значения разных типов (можеш читать про RegExp)
чтобы проверить соответствует строка регулярнои выр. можеш использовать метод .test
function check(input) {
var re1 = new RegExp("[а-яА-Я] ");
if(re1.test(input.value)){
// правильно
} else {
// НЕ правельно
}
}
Сергей Яркин
Сергей Яркин
2 486
Лучший ответ
Шухрат Тохтахунов Не работает по прежнему... Если ввожу меньше 2-ух символов, то выходит соотв. сообщение, а если ввожу цифры, то сообщения о "вводите русские буквы" не выходит. Точно так же с англ ничего не происходит ([a-zA-Z]).
Помогите, пожалуйста....

Вот такой код теперь у скрипта:

function validateName(input) {
var name = new RegExp("^[а-яА-Я] ");

if (input.value.length < 2) {
input.setCustomValidity("Слишком короткое имя! ");
}
else if(name.test(input.value)){
input.setCustomValidity("Введите свое имя на русском языке! ");
}
else {
input.setCustomValidity("");
}
}
Artem Grigorenko
Artem Grigorenko
59 848
Я выполнил так.
$log ==""; // ошибки
$error="no"; //флаг наличия ошибки

//Короткие имена переменных и обрезка пробелов img_title
$comtext = trim($_POST['comment']);
$post = trim($_POST['post_id']);
$login = trim($_POST['name']);
$email = trim($_POST['email']);

//Поскольку XMLHttpRequest-запросы передаются исключительно UTF-8,
использование в сриптах на сервере и у клиента windows-1251 ( CP1251 ) требует дополнительных мер.
$comtext = iconv("UTF-8","CP1251",$comtext);
$post = iconv("UTF-8","CP1251",$post);
$login = iconv("UTF-8","CP1251",$login);
$date = date("Y-m-d");

Для возможности демонстрации даты комментария, вызовем функцию date("Y-m-d");
различные проверки введенной информации.

//Проверка наличия введенного текста комментария
if (empty($comtext))
{
$log .= "Необходимо указать текст сообщения!
";
$error = "yes";
}

if(strlen($comtext)>1010)
{
$log .= "Слишком длинный текст, в вашем распоряжении 1000 символов!
";
$error = "yes";
}

$mas = preg_split("/[\s]+/",$comtext);
foreach($mas as $index => $val)
{
if (strlen($val)>60)
{
$log .= "Слишком длинные слова (более 60 символов) в тексте записи!
";
$error = "yes";
break;
}
}
//Должнен быть хоть один символ на русском языке
$spam=1;

for($i=0;$i=192) && (ord($comtext[$i])<=255)){$spam=0;break;}
}

if ($spam == 1)
{
$log .= "В комментарии нет ни одной русской буквы. Не принимается!
";
$error = "yes";
}

//Экранирование и преобразование опасных символов
if (!get_magic_quotes_gpc())
{
$comtext = addslashes($comtext);
$login = addslashes($login);
$post = addslashes($post);
$email = addslashes($email);
}

$comtext = htmlspecialchars($comtext);
$login = htmlspecialchars($login);
$post = htmlspecialchars($post);
$email = htmlspecialchars($email);

//Если нет ошибок, заносим комментарий в БД
if($error=="no")
{
$prov = 0;

//Соединяемся с базой
include ("test/bd.php");

$sqlins = "INSERT INTO comments (email_com,post,author,text,date) VALUES (?, ?)";
$stmt = mysqli_prepare($db, $sqlins);

mysqli_stmt_bind_param($stmt, 'sssss', $e, $p, $a, $t, $d);

$e = $email;
$p = $post;
$a = $login;
$t = $comtext;
$d = $date;

mysqli_stmt_execute($stmt);

mysqli_stmt_close($stmt);

mysqli_close($db);

//Соединяемся с базой
include ("test/bd.php");

//Отправка письма админу о новой регистрации
$emailadmin = 'test@gmail.com';//e-mail админа

$mes = "Cообщение из формы обратной связи: $comtext";

$from = $email;
$to = $emailadmin;
$sub = '=?windows-1251?B?'.base64_encode('Новая регистрация').'?=';
$headers = 'From: '.$from.'
';
$headers .= 'MIME-Version: 1.0
';
$headers .= 'Content-type: text/plain; charset=windows-1251
';

mail($to, $sub, $mes, $headers);

Тут очень легко добавить любые проверки.

Попробуйте еще посмотреть тут.
Проверка заполнения полей формы http://p.cscore.ru/c/91225
Сергей Яркин Очень длинныи код.... Только он на PHP