25.01.2014, 00:41
|
Новичок на форуме
|
|
Регистрация: 23.10.2013
Сообщений: 8
|
|
Регулярные выражения
Привет!
Простейшая задачка поставила в тупик. Есть строка (одной из свойств объекта) с названием товара и его базовым количеством. Например, "носки вонючие, 1 шт.". Из этой строки надо вытащить только название.
Количество и единица измерения могут быть разными, но зато всегда будет паттерн "запятая пробел число пробел буквы конец", или, выражаясь нормальным языком, /,\s\d+\s\D+$/i
И все прекрасно работает для почти 200 таких строк, вот только следующие три из них под этот паттерн почему-то никак не подходят:
Гребенки д/перепл.машин 6.0 мм, белые, 100 шт
Нитки д/прошивки документов 150 ЛХ , 500 м
Корректирующая жидкость Expert Complete на хим.основе, 20 мл
Есть идеи, в чем может быть проблема?
\0, \n, \f, \r на конце уже проверял, результата нет.
|
|
25.01.2014, 00:56
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
alert(/[^\d,]+/.exec('Гребенки д/перепл.машин 6.0 мм, белые, 100 шт'));
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
25.01.2014, 01:10
|
Новичок на форуме
|
|
Регистрация: 23.10.2013
Сообщений: 8
|
|
Не то(( Отбрасывать надо именно ", 1 шт." и только в самом конце.
То есть, строка "Гребенка, 1 шт. д\машин, 100 шт 6.0мм whatever else , 0 шт, 10 шт, 100 шт" должна превращаться в "Гребенка, 1 шт. д\машин, 100 шт 6.0мм whatever else , 0 шт, 10 шт".
Штука в том, что это последнее ", 1 шт." подставляется серверным кодом стороннего сервиса. Зачем - не знаю, отключить нельзя, а нам очень сильно мешает.
|
|
25.01.2014, 01:17
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,105
|
|
NodeNerd,
var str = "Гребенка, 1 шт. д\машин, 100 шт 6.0мм whatever else , 0 шт, 10 шт, 100 шт";
alert(str.match(/.*(?=,[^,])/))
|
|
25.01.2014, 01:26
|
Новичок на форуме
|
|
Регистрация: 23.10.2013
Сообщений: 8
|
|
Бинго! Спасибо!
Теперь все нормально.
|
|
25.01.2014, 02:19
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
var str = "Гребенка, 1 шт. д\машин, 100 шт 6.0мм whatever else , 0 шт, 10 шт, 100 шт";
alert(str.slice(0, str.lastIndexOf(',')));
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
|
|