問題描述
使用jQuery向頁面添加元素時需要拼接HTML,當HTML中含有"
之類的信息時,手動拼接極度容易出錯,若有類似Python的.format()函數就方便多了
print('<button type="submit" value={}>今天</button>'.format('"/inform{"time": "今天"}"'))
# <button type="submit" value="/inform{"time": "今天"}">今天</button>
解決方案
- 定義函數,
String.prototype.format
- 添加轉義字符
代碼
/*字符串佔位符*/
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;
}
};
效果
輸入
'<button type="submit" value={0}>今天</button>'.format('"/inform{"time": "今天"}"')
輸出
"<button type="submit" value="/inform{"time": "今天"}">今天</button>"