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");
/// <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; }
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 举报,一经查实,本站将立刻删除。