c#和JS字符串format实现(可实现JSON对象,c#实体对象,C#匿名对象,替换)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#和JS字符串format实现(可实现JSON对象,c#实体对象,C#匿名对象,替换)相关的知识,希望对你有一定的参考价值。

  • 首先看一下JS实现方法,此方法在网上找的,具体地址忘了,代码如下:
  • String.prototype.format= function () 
            if (arguments.length == 0) return this;
            var param = arguments[0];
            var s = this;
            if (typeof (param) == ‘object‘) 
                for (var key in param)
                    s = s.replace(new RegExp("\\" + key + "\\", "g"), param[key]);
                return s;
             else 
                for (var i = 0; i < arguments.length; i++)
                    s = s.replace(new RegExp("\\" + i + "\\", "g"), arguments[i]);
                return s;
            
        

    javascript调用:

    var str = "js实现用two自符串替换占位符two three  one ".format(one: "I",two: "LOVE",three: "YOU");
    var str2 = "js实现用1自符串替换占位符1 2  0 ".format("I","LOVE","YOU");

    2.C#后台实现代码,下面方法自己写的;

            /// <summary>
            /// 字符串格式占位替换
            /// </summary>
            /// <param name="str">字符串</param>
            /// <param name="obj">替换对象(T,匿名对象,Newtonsoft.Json.Linq.JObject)</param>
            /// <returns></returns>
            public static string Format(string str, object obj)
            
                if (str.Length == 0)
                
                    return str;
                
                string s = str;
                if (obj.GetType().Name == "JObject")
                
                    foreach (var item in (Newtonsoft.Json.Linq.JObject)obj)
                    
                        var k = item.Key.ToString();
                        var v = item.Value.ToString();
                        s = Regex.Replace(s, "\\" + k + "\\", v, RegexOptions.IgnoreCase);
                    
                
                else
                
                    foreach (System.Reflection.PropertyInfo p in obj.GetType().GetProperties())
                    
                        var xx = p.Name;
                        var yy = p.GetValue(obj).ToString();
                        s = Regex.Replace(s, "\\" + xx + "\\", yy, RegexOptions.IgnoreCase);
                    
                
                return s;
            

    c#调用方法:

     string ssew = "one:‘I‘,two: ‘LOVE‘,three: ‘YOU‘";
                Newtonsoft.Json.Linq.JObject o2 = Newtonsoft.Json.Linq.JObject.Parse(ssew);
                string sew = CommonFunc.Format("ONE TWO three  ", o2);
    
                var ste = new  one = "I", two = "LOVE", three = "You" ;
                string ese = CommonFunc.Format("ONE TWO three  ", ste);

    以上是关于c#和JS字符串format实现(可实现JSON对象,c#实体对象,C#匿名对象,替换)的主要内容,如果未能解决你的问题,请参考以下文章

    C#对JSON的处理和JSON在JS的序列化

    通过Oracle函数SQL实现C# String.Format字符串格式化功能

    原生js实现JSON.parse()和JSON.stringify()

    JavaScript字符串Format

    C# String.Format 等价于带有自定义格式化程序的 JS

    json如何实现"1,2,3"变成['1','2','3']