[работа со строками] Спасайте.. не могу сообразить..
есть например артикул товара: LUXLITE 8A5 98 77.14-22
обычно люди ищут по артикулу сразу без указания производителя, но! иногда у производителей совпадают артикулы и получается каша.. например запрос 8A5 98 77.14-22 - режем .replace(/[/\s/.,!?;]*/g, '') и ищем по базе.. оно выдаст например LUXLITE и JASONS, как в строке отловить что 2 первые буквы в строке идут друг за другом? т.е. LUXLITE 8A5 98 77.14-22 - как отловить LU, и точно знать что это буквы, а не цифры? :-E |
var str='LUXLITE 8A5 98 77.14-22'; var X='LU' //Тестовая подстрока var Test ='/'+X+'/gm'; var OutNumSumb = str.search(eval(Test)); //Ищем index Первого вхождения Подстроки в тестируемом контенте(номер символа от начала alert(OutNumSumb) |
Цитата:
|
Цитата:
ну суть в чем.. пользователь вводит в строку поиска 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 ну, я думаю суть проблемы донес, зачем мне это :) |
Цитата:
|
а откуда я знаю что ему надо LUXLITE если он ввел лишь только артикул.. с учетом того что LUXLITE это например под этим артикулом - мешок риса, а JASONS это яд для крыс..
|
Цитата:
|
Цитата:
var text = 'LUXLITE 8A5 98 77.14-22'; alert( /^[A-Z]{2,}/.exec( text ) ); |
V2oD2o,
Составьте массив Выбора Arraychoice = new Array( "LUXLITE 8A5 98 77.14-22", "JASONS 8.A598-77142.2", "И т.д." ) Далее ищите по Введенной Пользователем подстроки по массиву и заменяете его запись, - на полную, Регулярки серьезной даже не надо, - нужно ток отформатировать введенную строку -убрать из введенной строки пробелы и вставить заново стандартным макаром(1 пробел меж словами далее поиск через indexOf |
Цитата:
|
Часовой пояс GMT +3, время: 05:59. |