Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.04.2015, 07:07
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

Простая регулярка
Здравствуйте!

Редко сталкиваюсь с регулярными выражениями и всегда это проблема для меня!(

Такой вот вопрос:

Пользователь должен ввести название бренда и в скобках страну, например: TOYOTA (Япония) или ВАЗ (Россия).

Помогите с регулярным выражением, как проверить верно ли введено значение!?
Ответить с цитированием
  #2 (permalink)  
Старый 07.04.2015, 07:54
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Да их не так и много, производителей авто, удобнее не вводить, а предлагать выбор из списка.
Ответить с цитированием
  #3 (permalink)  
Старый 07.04.2015, 07:59
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

У меня там ajax автокомплит, с полем удобно то, что всегда можно предложить свой вариант!
Ответить с цитированием
  #4 (permalink)  
Старый 07.04.2015, 08:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

И что, проверять это рег. выражениями. Как вы себе это представляете? Ведь при этом в паттерне нужно прописать все эти бренды, хотя можно сравнивать по наличию элемента в массиве, но который тоже должен быть описан. А если новое, предложенный вариант, то как узнать верный ли он, с чем его сравнивать?

Без обиды, но это называется маяться дурью. Для кого это и кто хранит эти бренды, ваш автокомплит или же все-таки сервер?
Ответить с цитированием
  #5 (permalink)  
Старый 07.04.2015, 08:11
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

Мне нужно только чтобы пользователь правильно указал формат, "название (страна)", а проверять правильно ли он написал или "sdfsdfsf (addasda)" не нужно!
Ответить с цитированием
  #6 (permalink)  
Старый 07.04.2015, 08:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Каким образом? Я напишу STRING (Тобаго) - это будет правильно?

PS. Проверить наличие () и пробелов в строке рег. выражением не проблема, но зачем, и не проще ли добавление нового это бренд и страна как отдельные поля? Если это ради помещения такого в базе, значит данные о брендах в базе имеют не лучшее отображение, а наихудшее.

Последний раз редактировалось laimas, 07.04.2015 в 08:20.
Ответить с цитированием
  #7 (permalink)  
Старый 07.04.2015, 08:19
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от Andrei
Помогите с регулярным выражением, как проверить верно ли введено значение!?
Размером оно будет немалым...

Как вариант...
var str='TOYOTA (Япония)';
alert(ok(str));
str='NISSAN (Япония)';
alert(ok(str));
str='ВАЗ (Россия)';
alert(ok(str));
str='УАЗ (Россия)';
alert(ok(str));
function ok(Str) {
	var re=/^(((TOYOTA|NISSAN)\s\(Япония\))|((ВАЗ|УАЗ)\s\(Россия\)))$/;
	return re.test(Str);
};
Ответить с цитированием
  #8 (permalink)  
Старый 07.04.2015, 08:23
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от Andrei
Мне нужно только чтобы пользователь правильно указал формат, "название (страна)"
Как вариант...

var str='TOYOTA (Япония)';
alert(ok(str));
str='NISSAN (Япония)';
alert(ok(str));
str='ВАЗ (Россия)';
alert(ok(str));
str='УАЗ (Россия)';
alert(ok(str));
function ok(Str) {
	var re=/^.+\s\(.+\)$/;
	return re.test(Str);
};
Ответить с цитированием
  #9 (permalink)  
Старый 07.04.2015, 08:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

var re=/^.+\s\(.+\)$/;

Не пойдет такое, тогда брендом и страной может быть все, что угодно, хотя бы уж буковки одни, и то куда ни шло. )
Ответить с цитированием
  #10 (permalink)  
Старый 07.04.2015, 08:29
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

Ладно уговорили!) Нашел список производителей, забью его в бд и сделаю select!

Спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простая регулярка PashPP Общие вопросы Javascript 21 15.08.2012 23:23
Простая защита на сайт any.zicky Общие вопросы Javascript 4 07.06.2012 00:59
простая форма авторизации sedoyksa Общие вопросы Javascript 5 01.10.2011 22:29
Как написать это грамматно, простая функция Harvey jQuery 3 13.09.2011 12:30
Регулярка на дробные числа shkarbatov Javascript под браузер 14 29.07.2011 01:05