簡體   English   中英

C# String.Format 等價物是帶有自定義格式化程序的 JS

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM