[英]C# String.Format equivalent is JS with customize formatter
關於這個問題有不同的問題,但它們都涵蓋了 C# 原生 String.Format 方法,這些方法涵蓋了這樣的情況,當只替換索引時:
"{0}, {1}!', 'Hello', 'world"
在 .Net 中,我可以實現IFormatProvider, ICustomFormatter
並將其提供給
String Format(IFormatProvider provider, String format, params object[] args);
然后格式化字符串,如:
"{0:u} {0:l}"
在格式化程序實現中,我可以訪問格式(在示例“u”或“l”中)並通過切換大小寫格式來相應地格式化字符串。 我怎樣才能用 JS 實現這一點
C# 示例:
public class CustomFormatter : IFormatProvider, ICustomFormatter
{
public string Format(string format, object arg, IFormatProvider formatProvider)
{
switch (format)
{
case "u":
return (arg).ToUpperCase();
case "l":
return (arg).ToLowerCase();
}
}
}
string.Format(new CustomFormatter(),"{0:u} {1:l}","hello","WORLD")
//OUTPUT: "HELLO world"
Javascript 中不存在這樣的東西,但是您可以使用外部庫來實現類似的結果。 例如,使用包string-format您可以執行以下操作:
const fmt = format.create ({
lower: s => s.toLowerCase(),
upper: s => s.toUpperCase(),
})
fmt ('{!upper} {!lower}!', "hello","WORLD")
// 'HELLO world'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.