加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 19:52:07 所属栏目:百科 来源:网络整理
导读:首先看一下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 par
  • 首先看一下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);

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读