溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

c#和JS字符串format實(shí)現(xiàn)(可實(shí)現(xiàn)JSON對(duì)象,c#實(shí)體對(duì)象,C#匿名對(duì)象,替換)

發(fā)布時(shí)間:2020-07-19 02:18:35 來源:網(wǎng)絡(luò) 閱讀:368 作者:溫馨夢(mèng)痕 欄目:web開發(fā)
  1. 首先看一下JS實(shí)現(xiàn)方法,此方法在網(wǎng)上找的,具體地址忘了,代碼如下:
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調(diào)用:

var str = "js實(shí)現(xiàn)用{two}自符串替換占位符{two} {three}  {one} ".format({one: "I",two: "LOVE",three: "YOU"});
var str2 = "js實(shí)現(xiàn)用{1}自符串替換占位符{1} {2}  {0} ".format("I","LOVE","YOU");

2.C#后臺(tái)實(shí)現(xiàn)代碼,下面方法自己寫的;

        /// <summary>
        /// 字符串格式占位替換
        /// </summary>
        /// <param name="str">字符串</param>
        /// <param name="obj">替換對(duì)象(T,匿名對(duì)象,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#調(diào)用方法:

 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);
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI