微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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 + "\\}",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);

    版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

    相关推荐