c#和JS字符串format实现(可实现JSON对象,c#实体对象,C#匿名对象,替换)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#和JS字符串format实现(可实现JSON对象,c#实体对象,C#匿名对象,替换)相关的知识,希望对你有一定的参考价值。
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#匿名对象,替换)的主要内容,如果未能解决你的问题,请参考以下文章
通过Oracle函数SQL实现C# String.Format字符串格式化功能
原生js实现JSON.parse()和JSON.stringify()