В следующем:
<span>This cost $15.99 per item</span>
как мне вернуть "$ 15.99" с помощью jquery? Значение также может быть, например, «$ 7».
Выражение будет похоже на \$\d+(\.\d+)? или \$\d+(?:\.\d+)?, чтобы избавиться от подгруппы.
\$\d+(\.\d+)?
\$\d+(?:\.\d+)?
$("span").filter(function() { return this.text().match('\$\d+(\.\d+)?'); });
Вы можете использовать только совпадение match('\$\d+(\.\d+)?'), но вышеуказанная функция отфильтрует промежутки, содержащие совпадение.
match('\$\d+(\.\d+)?')
демо
alert($('span').text().match(/\$\d+.\d+/));
но здесь есть код , чтобы регулярное выражение было более точным ...
return($('span').text().match(/\$\d.+\d/));
пример
Будет ли текст всегда "Это цена [ваша цена] за единицу" или текст также произвольный?
Если текст фиксированный, вы можете просто $.replace() все, кроме цены (в два шага) с пустой строкой.
$.replace()