Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.03.2010, 13:40
Аспирант
Отправить личное сообщение для Amateur Посмотреть профиль Найти все сообщения от Amateur
 
Регистрация: 07.03.2010
Сообщений: 88

Что можно и нужно прочитать про валидацию?
Здравствуйте.
Возник вопрос, какие статьи, учебники сайты можете посоветовать про валидацию форм или про синтаксис вообще (только прямые ссылки если можно).
Необходим разбор синтаксиса, к примеру, что означает \d (номер это я знаю), \s, $, ^[] и т.п.
Сейчас столкнулся с тем как проверить введенные данные, а именно, чтобы в начале была дата 10.12.2009 затем анг или русские буквы.
На дату прогнать смог - ^[\d+\d+\.+\d+\d+\.+\d+\d], а как добавить к этому условие, чтобы после даты обязательно был текст не знаю.


И просить помощи по таким вопросам напряг если честно - ведь знаю, что решение простое, надо только прочитать как это делается.
Ответить с цитированием
  #2 (permalink)  
Старый 08.03.2010, 14:06
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

var str = '8.03.2010 русскиебуквы';

alert(str.match(/^\d{1,2}\.\d{1,2}\.\d{4} [a-zа-яё]+$/i))
Ответить с цитированием
  #3 (permalink)  
Старый 08.03.2010, 16:50
Аспирант
Отправить личное сообщение для Amateur Посмотреть профиль Найти все сообщения от Amateur
 
Регистрация: 07.03.2010
Сообщений: 88

если пишу так
['validate', 'Пример: 01.12.2009 (день.месяц.год) текст', function(v) {
var test = new Date(v);
return Validation.get('IsEmpty').test(v) || /^\d{2}\.\d{2}\.\d{4}\s[a-zа-яё]+$/.test(v)
}],

то небольшая заминка, - если написать 21.12.2009 текст пробел текст(т.е. поставить пробел между словами), то выдает ошибку, если пробела нет (т.е. дата, пробел, слово), то пропускает.
В чем ошибка?
Ответить с цитированием
  #4 (permalink)  
Старый 08.03.2010, 18:41
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

В html5 будет встроенная валидация, я бы советовал ознакомиться с черновиками, и сделать "костыли" заранее, чтобы потом их снять (для нужных браузеров) и наслаждаться нативной валидацией без хлопот.
Ответить с цитированием
  #5 (permalink)  
Старый 09.03.2010, 11:10
Аспирант
Отправить личное сообщение для Amateur Посмотреть профиль Найти все сообщения от Amateur
 
Регистрация: 07.03.2010
Сообщений: 88

это же еще будет. а как относительно моего вопроса

Цитата:
если пишу так
['validate', 'Пример: 01.12.2009 (день.месяц.год) текст', function(v) {
var test = new Date(v);
return Validation.get('IsEmpty').test(v) || /^\d{2}\.\d{2}\.\d{4}\s[a-zа-яё]+$/.test(v)
}],

то небольшая заминка, - если написать 21.12.2009 текст пробел текст(т.е. поставить пробел между словами), то выдает ошибку, если пробела нет (т.е. дата, пробел, слово), то пропускает.
В чем ошибка? Как исправить?
Ответить с цитированием
  #6 (permalink)  
Старый 09.03.2010, 11:41
Аспирант
Отправить личное сообщение для Amateur Посмотреть профиль Найти все сообщения от Amateur
 
Регистрация: 07.03.2010
Сообщений: 88

решил вопрос таким способом
/^(\d{2}\.\d{2}\.\d{4}\s)[\w\s]*$/.test(v)


или даже лучше так
/^(\d{2}\.\d{2}\.\d{4}\s)[(a-zA-Zа-яА-Я)\s\d]*$


сейчас надыбал странички в нете - оказывается неправильно искал.
стоит в гоогле набить regexp и вуаля.

P.S.: лично мне помогла инфа здесь, но это не единственный сайт

Последний раз редактировалось Amateur, 09.03.2010 в 11:48.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 23:30