#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);