如何给 10 美元和 50.58 美元下划线
本文关键字:美元 下划线 | 更新日期: 2023-09-27 18:33:56
所有客户在 ccc.com's Home Decor, Home 中可享受 10 美元的折扣 50.58 美元 电器和户外商店!有效期至 2012 年 5 月 31 日"
我从数据库获得上述类型的字符串,该字符串可能包含也可能不包含 $。如果它包含 $,则应在 $ 后面的数字加下划线。字符串是完全动态的。它也可能不包含 $
尝试正则表达式:
Regex.Replace(str, @"(?<='$)'d+('.'d+)?", "<u>$0</u>");
一些示例输出:
"4.5" -> "4.5" (untouched)
"4" -> "4" (untouched)
"$4.5" -> "$<u>4.5</u>"
"$4" -> "$<u>4</u>"
虽然,由于u
已被弃用,您可能应该考虑带有类的<span>
,或者带有 text-decoration: underline
指令的内联样式:
Regex.Replace(str, @"(?<='$)'d+('.'d+)?",
"<span style=""text-decoration: underline"">$0</span>");
这将取决于您要将此文本放入的封闭元素是什么: 如果它也是一个span
,那么你不能嵌套它们,所以你必须关闭第一个(只需在替换字符串的开头粘贴"</span>"
(第三个参数)和"<span>"
在末尾)
以上面使用跨度的例子为例...可能比正则表达式更容易阅读的东西只是 indexOf 方法
string s = "$10";
string t = (s.IndexOf('$') > 0) ? "<span style='"text-decoration: underline'">#</span>".Replace("#",s):"<span>{0}</span>".Replace("#",s);