Подумайте, лучше ли использовать String.Format при конкатенации строк. Обычно код заканчивается тем, что имеет больше смысла.
Кроме того, если вы много раз объединяетесь, рассмотрите возможность использования StringBuilder, а не String.
Вы можете легко решить эту проблему с помощью jQuery:
jQuery.trim( jQuery('label').text() )
Это удалит теги за вас и произведет $ 36,07
, которые вы затем сможете протестировать с помощью гораздо более простого регулярного выражения.
(Если вы в настоящее время не используете jQuery и не хотите его использовать, вы все равно можете взглянуть на его исходный код и увидеть, как они реализовали .text ()
, чтобы имитировать его.)
Хммм, перечитывая свой вопрос, вы могли бы спросить кое-что еще - чтобы получить все метки, содержащие $
(и игнорировать входные данные), вы можете сделать:
jQuery('label:contains($)')
или
jQuery('label').each( checkForDollars );
function checkForDollars()
{
if ( jQuery(this).text().matches(/\$\d{2,5}/) } )
{
// do something
}
)
Это будет работать, пока суммы всегда имеют формат $ 36. 07
.
function getAmount (s) {
var r = /\$([^<]+)<sup>(\d+)/.exec(s);
return r[1]+r[2];
}
getAmount("$36.<sup>07</sup>");
// returns "36.07"