JavaScript регулярное выражение для замены символа, игнорирующего теги HTML

Подумайте, лучше ли использовать String.Format при конкатенации строк. Обычно код заканчивается тем, что имеет больше смысла.

Кроме того, если вы много раз объединяетесь, рассмотрите возможность использования StringBuilder, а не String.

1
задан Dagg Nabbit 13 August 2010 в 02:08
поделиться

2 ответа

Вы можете легко решить эту проблему с помощью 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
    }
)
2
ответ дан 2 September 2019 в 22:33
поделиться

Это будет работать, пока суммы всегда имеют формат $ 36. 07 .

function getAmount (s) { 
  var r = /\$([^<]+)<sup>(\d+)/.exec(s); 
  return r[1]+r[2]; 
}

getAmount("$36.<sup>07</sup>");
// returns "36.07"
0
ответ дан 2 September 2019 в 22:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: