如何强调10美元和50.58美元

use*_*540 3 c# asp.net

所有客户在ccc.com的家居装饰,家用电器和户外商店中享受50.58美元优惠10美元!有效期至2012年5月31日"

我从db获取上面的字符串类型,字符串可能包含或不包含$.如果它包含$那么$后面的数字应该加下划线.字符串是完全动态的.它也可能不包含$

And*_*tan 7

试试一个正则表达式:

Regex.Replace(str, @"(?<=\$)\d+(\.\d+)?", "<u>$0</u>");
Run Code Online (Sandbox Code Playgroud)

一些示例输出:

"4.5"     -> "4.5"         (untouched)
"4"       -> "4"           (untouched)
"$4.5"    -> "$<u>4.5</u>"
"$4"      -> "$<u>4</u>"
Run Code Online (Sandbox Code Playgroud)

虽然,因为u已弃用,您应该考虑使用<span>带有text-decoration: underline指令的类或内联样式:

Regex.Replace(str, @"(?<=\$)\d+(\.\d+)?", 
  "<span style=""text-decoration: underline"">$0</span>");
Run Code Online (Sandbox Code Playgroud)

这将取决于封装元素是什么,你把这个文本:如果,也是一个span,那么你就不能嵌套的,所以你必须关闭第一个关闭(只是坚持"</span>"在更换字符串的开始(第3个arg)和"<span>"结束时)