Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярные выражения 
:(
    Опции темы
Syltan
Дата 23.4.2010, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 31.8.2009

Репутация: -1
Всего: -2



Не работают регулярные выражения, ничего не выдаёт вообще на экран, верно и неверно не выдаёт.

Код

<html>
<head>
<script type="text/javascript">
function f() {
var a=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
var inp = document.getElementById('inp');
var verno = document.getElementById('verno');
var neverno = document.getElementById('neverno');

if(inp.value.search(a)! == - 1) {
verno.style.display = 'inline';
neverno.style.display = 'none';
document.forms[0].submit();
}
else
{
 neverno.style.display = 'inline';
 verno.style.display = 'none';
}

</script>

</head>
<body>
<input type='text' id='inp'>
<div style='display:none; color:#00FF00' id='verno'>Верно</div>
<div style='display:none; color:red' id='neverno'>Неверно</div>
<input type='button' value='Отправить' onclick='f()'>


</body>
</html> 
 



Это сообщение отредактировал(а) Syltan - 23.4.2010, 22:22
PM MAIL   Вверх
skyboy
Дата 23.4.2010, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 3
Всего: 260



Цитата(Syltan @  23.4.2010,  21:18 Найти цитируемый пост)
display.none

и че это такое?
кстати говоря, сам был поражен, но \w в языке с поддержкой только unicode кодировки не включает в себя кирилицу и прочую не-латиницу. потому если ты пытаешься применить "\w" как "любой символ в составе слова" к тексту с кирилицей, то у тебя выйдет облом-с :(
PM MAIL   Вверх
Syltan
Дата 23.4.2010, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 31.8.2009

Репутация: -1
Всего: -2



Что тогда вмсето этого написать?
Код

\w

PM MAIL   Вверх
skyboy
Дата 23.4.2010, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 3
Всего: 260



[А-ЯЁ0-9A-Z-'](символ ' - для "д'Артаньян"; символ - для "Складовская-Кюри" и сложных слов). подумай, может, дополнишь символьный класс.
PM MAIL   Вверх
Amphiluke
Дата 23.4.2010, 23:10 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Syltan,
открывайте консоль и выковыривайте ошибки
 
Цитата(Syltan @  24.4.2010,  02:18 Найти цитируемый пост)

Код

<html>
<head>
<script type="text/javascript">
function f() {
var a=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
var inp = document.getElementById('inp');
var verno = document.getElementById('verno');
var neverno = document.getElementById('neverno');

if(inp.value.search(a)! == - 1) {   /* <-----------  убрать пробел */
verno.style.display = 'inline';
neverno.style.display = 'none';
document.forms[0].submit();
}
else
{
 neverno.style.display = 'inline';
 verno.style.display = 'none';
}
   /* <------------- закрыть скобку */
</script>

</head>
<body>
<input type='text' id='inp'>
<div style='display:none; color:#00FF00' id='verno'>Верно</div>
<div style='display:none; color:red' id='neverno'>Неверно</div>
<input type='button' value='Отправить' onclick='f()'>


</body>
</html>


PM   Вверх
Syltan
Дата 23.4.2010, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 31.8.2009

Репутация: -1
Всего: -2



А где ошибку-то искать? Я не могу найти.
PM MAIL   Вверх
Amphiluke
Дата 23.4.2010, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Я ж стрелками показал. Вы открывали консоль?

Это сообщение отредактировал(а) Amphiluke - 23.4.2010, 23:23
PM   Вверх
Syltan
Дата 23.4.2010, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 31.8.2009

Репутация: -1
Всего: -2



Вроде сработало, не глянул на стрелки просто. Всё вроде ясно, кроме вот этого места. Если кто знает растолкуйте его .
Код

var a=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;


PM MAIL   Вверх
Amphiluke
Дата 23.4.2010, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Ну, просто регулярное выражение для проверки корректности введенного e-mail. smile
А какая часть непонятна?

Добавлено через 6 минут и 30 секунд
Кстати, вызов метода submit несуществующей формы — тоже ошибка...

Цитата(Syltan @  24.4.2010,  02:18 Найти цитируемый пост)
Код

document.forms[0].submit();


PM   Вверх
Syltan
Дата 23.4.2010, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 31.8.2009

Репутация: -1
Всего: -2



Вот так правильно.
Код

<html>
<head>
<script type="text/javascript">
function f() {
var a=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
var inp = document.getElementById('inp');
var verno = document.getElementById('verno');
var neverno = document.getElementById('neverno');

if(inp.value.search(a)!== - 1) { 
verno.style.display = 'inline';
neverno.style.display = 'none';
document.forms[0].submit();
}
else
{
 neverno.style.display = 'inline';
 verno.style.display = 'none';
}
}
   
</script>

</head>
<body>
<form name='forma'>
<input type='text' id='inp'>
<div style='display:none; color:#00FF00' id='verno'>Верно</div>
<div style='display:none; color:red' id='neverno'>Неверно</div>
<input type='button' value='Отправить' onclick='f()'>
</form>

</body>
</html>


Ну всё-таки расшифруйте, какждое действие, вот этой строки, а то не ясно.
Код

var a=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;


PM MAIL   Вверх
Amphiluke
Дата 24.4.2010, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Цитата(Syltan @  24.4.2010,  03:57 Найти цитируемый пост)
Ну всё-таки расшифруйте, какждое действие, вот этой строки, а то не ясно.

Похоже, вам стóит почитать о регулярных выражениях. Я не стану сильно распинаться, т.к. это бесполезно, пока вы сами не соизволите сесть разбираться.

Вообще, это регулярное выражение ищет соответствие шаблону условно вида [email protected], где A и B — строки, которые могут содержать латинские символы, точку и дефис, а C — строка из двух-четырех латинских буковок.

Добавлено через 1 минуту и 17 секунд
P.S. Понятно, что это шаблон адреса эл. почты.
PM   Вверх
Syltan
Дата 24.4.2010, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 31.8.2009

Репутация: -1
Всего: -2



Наконец-то расшифровал эту белеберду с регулярными, кстати очень хорошая вещь, не нужно ветвления или свитчей использовать.
Тут возник вопрос ещё в этом месте.
Код

if(inp.value.search(a)!== - 1) { 



Почему именно мину 1. Как это расшифровывается строка?

И вот эта строка которая не ясна ,а тк всё вроде понятно.
Код

document.forms[0].submit();


Это обращение к 1 форме, по индексу 1, а дальше через точку, эт очто такое?
Код

submit();

PM MAIL   Вверх
skyboy
Дата 24.4.2010, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 3
Всего: 260



Цитата(Amphiluke @  23.4.2010,  22:45 Найти цитируемый пост)
Ну, просто регулярное выражение для проверки корректности введенного e-mail.

тьфу, а я все про кирилицу да про \w  smile 
PM MAIL   Вверх
mxt
Дата 24.4.2010, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 6.9.2007

Репутация: 1
Всего: 1



Syltan, 
иди почитай книжку,  ты слишком элементарные вопросы задаешь
--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0548 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.