Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.07.2012, 10:41
Аспирант
Отправить личное сообщение для V2oD2o Посмотреть профиль Найти все сообщения от V2oD2o
 
Регистрация: 19.01.2011
Сообщений: 59

[работа со строками] Спасайте.. не могу сообразить..
есть например артикул товара: LUXLITE 8A5 98 77.14-22
обычно люди ищут по артикулу сразу без указания производителя, но! иногда у производителей совпадают артикулы и получается каша..

например запрос 8A5 98 77.14-22 - режем .replace(/[/\s/.,!?;]*/g, '') и ищем по базе..

оно выдаст например LUXLITE и JASONS, как в строке отловить что 2 первые буквы в строке идут друг за другом?

т.е. LUXLITE 8A5 98 77.14-22 - как отловить LU, и точно знать что это буквы, а не цифры?
Ответить с цитированием
  #2 (permalink)  
Старый 11.07.2012, 11:29
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

var str='LUXLITE 8A5 98 77.14-22';
var X='LU' //Тестовая подстрока
var Test ='/'+X+'/gm';
var OutNumSumb = str.search(eval(Test)); //Ищем index Первого вхождения Подстроки в тестируемом контенте(номер символа от начала
alert(OutNumSumb)

Последний раз редактировалось Deff, 11.07.2012 в 11:33.
Ответить с цитированием
  #3 (permalink)  
Старый 11.07.2012, 11:31
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от V2oD2o
т.е. LUXLITE 8A5 98 77.14-22 - как отловить LU, и точно знать что это буквы, а не цифры?
Приведите еще пяток примеров -мало инфы и по ходу Вопрос полностью не исчерпан
Ответить с цитированием
  #4 (permalink)  
Старый 11.07.2012, 11:54
Аспирант
Отправить личное сообщение для V2oD2o Посмотреть профиль Найти все сообщения от V2oD2o
 
Регистрация: 19.01.2011
Сообщений: 59

Сообщение от Deff Посмотреть сообщение
Приведите еще пяток примеров -мало инфы и по ходу Вопрос полностью не исчерпан
Спасибо что отозвался)

ну суть в чем..
пользователь вводит в строку поиска 8A5 98 77.14-22, режем и по базе ищем - 8A598771422, вываливаем:
LUXLITE 8A5 98 77.14-22
JASONS 8.A598-77142.2

пользователь должен ткнуть лишний раз чтоб выбрать именно то что ему надо.. вот это дело - надо убить..

идея какая.. судя по человеческой логике что делаем? пишем в строку поиска сразу "LUXLITE 8A5 98 77.14-22".. значит что я хочу сделать, взять 2 первых символа - проверить - если буквы то копировать часть строки до пробела - в 90% случаев это и будет бренд артикула, сделать выборку в бд по способу выше, но вывалить только тот что с брендом LUXLITE..

вот. а если артикул еще короче этого? например "8857"..
что видим?:
ASB 8857
LUXE 8857
KAKA 8857
DIXY 5587
TRATATA 5587

берем "TRATATA 5587" - проверяем "TR" = буквы, копируем "TRATATA" - фильтруем, видим:
TRATATA 5587

ну, я думаю суть проблемы донес, зачем мне это

Последний раз редактировалось V2oD2o, 11.07.2012 в 12:04.
Ответить с цитированием
  #5 (permalink)  
Старый 11.07.2012, 12:02
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от V2oD2o Посмотреть сообщение
Спасибо что отозвались ребят..

ну суть в чем..
пользователь вводит 8A5 98 77.14-22, режем и по базе ищем - 8A598771422, вываливаем:
LUXLITE 8A5 98 77.14-22
JASONS 8.A598-77142.2

пользователь должен ткнуть лишний раз чтоб выбрать именно то что ему надо.. вот это дело - надо убить..
ну и выводите ему сразу LUXLITE
Ответить с цитированием
  #6 (permalink)  
Старый 11.07.2012, 12:07
Аспирант
Отправить личное сообщение для V2oD2o Посмотреть профиль Найти все сообщения от V2oD2o
 
Регистрация: 19.01.2011
Сообщений: 59

а откуда я знаю что ему надо LUXLITE если он ввел лишь только артикул.. с учетом того что LUXLITE это например под этим артикулом - мешок риса, а JASONS это яд для крыс..
Ответить с цитированием
  #7 (permalink)  
Старый 11.07.2012, 12:14
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от V2oD2o Посмотреть сообщение
а откуда я знаю что ему надо LUXLITE если он ввел лишь только артикул.. с учетом того что LUXLITE это например под этим артикулом - мешок риса, а JASONS это яд для крыс..
выводите первым что нибудь популярнее, на пример, а потом список остального, тут уже вы не виноваты, что артикулы практически одинаковые...
Ответить с цитированием
  #8 (permalink)  
Старый 11.07.2012, 12:19
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от V2oD2o
LUXLITE 8A5 98 77.14-22 - как отловить LU, и точно знать что это буквы, а не цифры?
var text = 'LUXLITE 8A5 98 77.14-22';

alert( /^[A-Z]{2,}/.exec( text ) );
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #9 (permalink)  
Старый 11.07.2012, 12:48
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

V2oD2o,
Составьте массив Выбора

Arraychoice = new Array(
"LUXLITE 8A5 98 77.14-22",
"JASONS 8.A598-77142.2",
"И т.д."
)

Далее ищите по Введенной Пользователем подстроки по массиву и заменяете его запись, - на полную,
Регулярки серьезной даже не надо, - нужно ток отформатировать введенную строку -убрать из введенной строки пробелы и вставить заново стандартным макаром(1 пробел меж словами далее поиск через indexOf

Последний раз редактировалось Deff, 11.07.2012 в 12:53.
Ответить с цитированием
  #10 (permalink)  
Старый 11.07.2012, 12:58
Аспирант
Отправить личное сообщение для V2oD2o Посмотреть профиль Найти все сообщения от V2oD2o
 
Регистрация: 19.01.2011
Сообщений: 59

Сообщение от nerv_ Посмотреть сообщение
var text = 'LUXLITE 8A5 98 77.14-22';

alert( /^[A-Z]{2,}/.exec( text ) );
ВОТ!
Ответить с цитированием
Ответ



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

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