Извлечение определенного текста из полей выбора параметров

#javascript

#javascript

Вопрос:

Возможно, я просто неправильно использую .filter() здесь, но я пытался извлечь определенный фрагмент текста из полей выбора javascript без особого успеха.

Короче говоря, в каждом из моих полей опций есть куча информации, затем в скобках ([x] товары, оставшиеся на складе).

Я хотел бы извлечь это [x], но, похоже, я не могу заставить работать какую-либо фильтрацию регулярных выражений в jQuery — или, возможно, я делаю это неправильно.

Короче говоря, если кто-нибудь сможет выполнить приведенное ниже, я был бы очень признателен:

 $('.productSelect').change(function() {
  selectedItem = $(this   'option:selected').text();

  # Now grab the integer "x" inside the ([x] items left in stock) part of the text
  [ your code here]
});
  

Любая помощь очень ценится.

Комментарии:

1. Это не похоже на вопрос jQuery. Это вопрос о регулярных выражениях.

2. Я довольно хорошо знаком с регулярными выражениями, но, похоже, не могу извлечь это ([d] ) с помощью jQuery. Я думаю, вопрос в том, как извлечь регулярное выражение () в jQuery.

3. К вашему сведению, ваш актуальный вопрос касается чистого javascript, а не jquery. И вы должны использовать var selectedItem = вместо selectedItem = , чтобы не помещать свой var в глобальную область видимости.

Ответ №1:

Что-то в этом роде:

 $('.productSelect').change(function() {
  selectedItem = $(this   'option:selected').text();

  # Now grab the integer "x" inside the ([x] items left in stock) part of the text
  var n = selectedItem.match(/(()(d )())/)[2];
});
  

Конечно, это выражение зависит от того факта, что ваши данные отформатированы как (number) string

Ответ №2:

Это должно дать вам то, что вам нужно.

 var pattern=/[(d )] items left in stock/;
var qty = pattern.exec(selectedItem)[1];
  

Ответ №3:

Поэтому вам следует использовать функцию JavaScript string.match

 var s = "[100] items left in stock";

var p = s.match(regexp);