我不是C#专家,我只做了几个月。
我有一个令牌@Html.Raw(Model.Prices.SitePrice.Text)
显示产品价格($ 9.99(
我需要从令牌中删除 $ 符号,所以我放了@Html.Raw(Model.Prices.SitePrice.Text.Replace("$", ""))
这一切都工作正常,问题是当我对该产品应用特殊/促销时,它会更改令牌以显示:
<strike>$9.99</strike> $7.99
它应该在工作后显示7.99
。
我希望使用通配符删除<stike>$##.##</strike>
以处理罢工之间的任何数字。
本文编写 .replace(( 的最佳方式是什么?(必须内联谷歌模式数据(
我试过:
@Html.Raw(Model.Prices.SitePrice.Text.Replace("$", "").Replace("<strike>[rn]+</strike> ", ""))
@Html.Raw(Model.Prices.SitePrice.Text.Replace("$", "").Replace("<strike>(.*)</strike> ", ""))
7种不同的瓦乌尔?
<strike>$9.99</strike> $7.99
它应该显示7.99
<strike>$10.99</strike> $8.99
它应该显示8.99
<strike>$199.00</strike> $188.00
它应该显示188.00
<strike>$20.00</strike> $18.50
它应该显示18.50
<strike>$4.20</strike> $2.20
它应该显示2.20
<strike>$12345.00</strike> $12225.00
它应该显示12225.00
@Html.Raw(Regex.Replace(Model.Prices.SitePrice.Text, @"<strike>[sS]*</strike>", "").Trim().TrimStart('$'))
一个需要考虑的选项:
@Html.Raw(new string(Model.Prices.SitePrice.Text.Reverse().TakeWhile(z => z != '$').Reverse().ToArray()))
这将采用SitePrice
末尾的文本,直到(不包括($。
Reverse
表示它会反转字符串。 TakeWhile
为您提供文本直到$
。 Reverse
再次将其反转。 new string
将 char 数组转换回字符串。