Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.01.2014, 00:41
Новичок на форуме
Отправить личное сообщение для NodeNerd Посмотреть профиль Найти все сообщения от NodeNerd
 
Регистрация: 23.10.2013
Сообщений: 8

Регулярные выражения
Привет!

Простейшая задачка поставила в тупик. Есть строка (одной из свойств объекта) с названием товара и его базовым количеством. Например, "носки вонючие, 1 шт.". Из этой строки надо вытащить только название.
Количество и единица измерения могут быть разными, но зато всегда будет паттерн "запятая пробел число пробел буквы конец", или, выражаясь нормальным языком, /,\s\d+\s\D+$/i

И все прекрасно работает для почти 200 таких строк, вот только следующие три из них под этот паттерн почему-то никак не подходят:
Гребенки д/перепл.машин 6.0 мм, белые, 100 шт
Нитки д/прошивки документов 150 ЛХ , 500 м
Корректирующая жидкость Expert Complete на хим.основе, 20 мл

Есть идеи, в чем может быть проблема?
\0, \n, \f, \r на конце уже проверял, результата нет.
Ответить с цитированием
  #2 (permalink)  
Старый 25.01.2014, 00:56
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

alert(/[^\d,]+/.exec('Гребенки д/перепл.машин 6.0 мм, белые, 100 шт'));
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #3 (permalink)  
Старый 25.01.2014, 01:10
Новичок на форуме
Отправить личное сообщение для NodeNerd Посмотреть профиль Найти все сообщения от NodeNerd
 
Регистрация: 23.10.2013
Сообщений: 8

Не то(( Отбрасывать надо именно ", 1 шт." и только в самом конце.
То есть, строка "Гребенка, 1 шт. д\машин, 100 шт 6.0мм whatever else , 0 шт, 10 шт, 100 шт" должна превращаться в "Гребенка, 1 шт. д\машин, 100 шт 6.0мм whatever else , 0 шт, 10 шт".

Штука в том, что это последнее ", 1 шт." подставляется серверным кодом стороннего сервиса. Зачем - не знаю, отключить нельзя, а нам очень сильно мешает.
Ответить с цитированием
  #4 (permalink)  
Старый 25.01.2014, 01:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

NodeNerd,
var str = "Гребенка, 1 шт. д\машин, 100 шт 6.0мм whatever else , 0 шт, 10 шт, 100 шт";
 alert(str.match(/.*(?=,[^,])/))
Ответить с цитированием
  #5 (permalink)  
Старый 25.01.2014, 01:26
Новичок на форуме
Отправить личное сообщение для NodeNerd Посмотреть профиль Найти все сообщения от NodeNerd
 
Регистрация: 23.10.2013
Сообщений: 8

Бинго! Спасибо!
Теперь все нормально.
Ответить с цитированием
  #6 (permalink)  
Старый 25.01.2014, 02:19
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

var str = "Гребенка, 1 шт. д\машин, 100 шт 6.0мм whatever else , 0 шт, 10 шт, 100 шт";
alert(str.slice(0, str.lastIndexOf(',')));
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
регулярные выражения remember_me Общие вопросы Javascript 2 26.12.2013 14:56
Составить регулярные выражения ($) Zero Tolerance Общие вопросы Javascript 10 19.11.2013 13:14
Регулярные выражения для javascript qwert_ukg Общие вопросы Javascript 3 20.04.2012 13:45
нежадные регулярные выражения KOLANICH Общие вопросы Javascript 2 12.12.2010 01:08
Функции поиска и замены строк или регулярные выражения? Armen Общие вопросы Javascript 1 01.01.2010 12:35