REGEX 在 MVC4 Razor 中使用上标格式化小数 / Javascript
REGEX to format decimals using superscript in MVC4 Razor / Javascript
我正在尝试使用上标格式化货币小数,例如$1.08 而不是 $1.08。目前,我的模型货币变量(假设 1.08
值)显示为 .08
使用模型模板和 MVC4 Razor / Javascript:
[Range(0, 10000)]
[DataType(DataType.Currency)]
[DisplayFormat(DataFormatString = "{0:C}")]
public decimal Price { get; set; }
@{
@Html.Display(model => model.Price)
}
相反,我尝试使用 REGEX 提取和格式化小数,但它仍然显示为 .08
(P.S。此时货币本地化并不重要):
@{
var numRaw = Model.Price;
var numSty = numRaw.ToString.Replace("(?<=\.)([^.]*$)", "<sup></sup>");
@Html.Raw(numSty);
}
注意双反斜杠 \.
转义。搜索表达式似乎 work correctly.
我在 "<sup></sup>"
替换字符串中做错了什么吗?
根据@AndrewB 和@SimonMcKenzie,Regex.Replace() 必须用于 Razor 才能工作。以下代码按预期显示 $1.08:
@using System.Text.RegularExpressions
@Html.Raw("$"+Regex.Replace(Math.Round(Model.Price,2).ToString(), "(?<=\.)([^.]*$)", "<sup></sup>"));
我正在尝试使用上标格式化货币小数,例如$1.08 而不是 $1.08。目前,我的模型货币变量(假设 1.08
值)显示为 .08
使用模型模板和 MVC4 Razor / Javascript:
[Range(0, 10000)]
[DataType(DataType.Currency)]
[DisplayFormat(DataFormatString = "{0:C}")]
public decimal Price { get; set; }
@{
@Html.Display(model => model.Price)
}
相反,我尝试使用 REGEX 提取和格式化小数,但它仍然显示为 .08
(P.S。此时货币本地化并不重要):
@{
var numRaw = Model.Price;
var numSty = numRaw.ToString.Replace("(?<=\.)([^.]*$)", "<sup></sup>");
@Html.Raw(numSty);
}
注意双反斜杠 \.
转义。搜索表达式似乎 work correctly.
我在 "<sup></sup>"
替换字符串中做错了什么吗?
根据@AndrewB 和@SimonMcKenzie,Regex.Replace() 必须用于 Razor 才能工作。以下代码按预期显示 $1.08:
@using System.Text.RegularExpressions
@Html.Raw("$"+Regex.Replace(Math.Round(Model.Price,2).ToString(), "(?<=\.)([^.]*$)", "<sup></sup>"));