07.04.2015, 07:07
|
Профессор
|
|
Регистрация: 31.10.2009
Сообщений: 151
|
|
Простая регулярка
Здравствуйте!
Редко сталкиваюсь с регулярными выражениями и всегда это проблема для меня!(
Такой вот вопрос:
Пользователь должен ввести название бренда и в скобках страну, например: TOYOTA (Япония) или ВАЗ (Россия).
Помогите с регулярным выражением, как проверить верно ли введено значение!?
|
|
07.04.2015, 07:54
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Да их не так и много, производителей авто, удобнее не вводить, а предлагать выбор из списка.
|
|
07.04.2015, 07:59
|
Профессор
|
|
Регистрация: 31.10.2009
Сообщений: 151
|
|
У меня там ajax автокомплит, с полем удобно то, что всегда можно предложить свой вариант!
|
|
07.04.2015, 08:07
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
И что, проверять это рег. выражениями. Как вы себе это представляете? Ведь при этом в паттерне нужно прописать все эти бренды, хотя можно сравнивать по наличию элемента в массиве, но который тоже должен быть описан. А если новое, предложенный вариант, то как узнать верный ли он, с чем его сравнивать?
Без обиды, но это называется маяться дурью. Для кого это и кто хранит эти бренды, ваш автокомплит или же все-таки сервер?
|
|
07.04.2015, 08:11
|
Профессор
|
|
Регистрация: 31.10.2009
Сообщений: 151
|
|
Мне нужно только чтобы пользователь правильно указал формат, "название (страна)", а проверять правильно ли он написал или "sdfsdfsf (addasda)" не нужно!
|
|
07.04.2015, 08:15
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Каким образом? Я напишу STRING (Тобаго) - это будет правильно?
PS. Проверить наличие () и пробелов в строке рег. выражением не проблема, но зачем, и не проще ли добавление нового это бренд и страна как отдельные поля? Если это ради помещения такого в базе, значит данные о брендах в базе имеют не лучшее отображение, а наихудшее.
Последний раз редактировалось laimas, 07.04.2015 в 08:20.
|
|
07.04.2015, 08:19
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,230
|
|
Сообщение от 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);
};
|
|
07.04.2015, 08:23
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,230
|
|
Сообщение от 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);
};
|
|
07.04.2015, 08:27
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
var re=/^.+\s\(.+\)$/;
Не пойдет такое, тогда брендом и страной может быть все, что угодно, хотя бы уж буковки одни, и то куда ни шло. )
|
|
07.04.2015, 08:29
|
Профессор
|
|
Регистрация: 31.10.2009
Сообщений: 151
|
|
Ладно уговорили!) Нашел список производителей, забью его в бд и сделаю select!
Спасибо!
|
|
|
|