JavaScript实现格式化字符串函数String.format
发布时间 - 2026-01-10 21:53:27 点击率:次在js开发中,我们可能会遇到这样一个问题

当需要通过js动态插入html标签的时候
特别是当遇到大量的变量拼接、引号层层嵌套的情况,会出现转义字符问题,经常出错
我们来看个例子
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script>
window.onload = function () {
var id = '1';
var code = 'zhangsan';
var name = '张三';
document.getElementById('test').innerHTML = '<a href="#" onclick="buttonClick(\"' + id + '\",\"' + code + '\">' + name + '</a>';
}
function buttonClick(id, code) {
alert(id + '-' + code);
}
</script>
</head>
<body>
<div id="test"></div>
</body>
</html>
运行直接报错
接下来把转义字符\"改成\'试下
运行之后,发现仍然无法正常显示
这样的代码不光看起来杂乱无章、难以维护,关键是很容易出错
接下来我们开始封装格式化字符串方法
String.js
(function () {
/// <summary>
/// 引号转义符号
/// </summary>
String.EscapeChar = '\'';
/// <summary>
/// 替换所有字符串
/// </summary>
/// <param name="searchValue">检索值</param>
/// <param name="replaceValue">替换值</param>
String.prototype.replaceAll = function (searchValue, replaceValue) {
var regExp = new RegExp(searchValue, "g");
return this.replace(regExp, replaceValue);
}
/// <summary>
/// 格式化字符串
/// </summary>
String.prototype.format = function () {
var regexp = /\{(\d+)\}/g;
var args = arguments;
var result = this.replace(regexp, function (m, i, o, n) {
return args[i];
});
return result.replaceAll('%', String.EscapeChar);
}
})();
通过占位符传递变量值,用%替代了引号转义符,代码简洁了很多,也非常方便维护,出错的机率也小了很多
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="String.js"></script>
<script>
window.onload = function () {
var id = '1';
var code = 'zhangsan';
var name = '张三';
document.getElementById('test').innerHTML = '<a href="#" onclick="buttonClick(%{0}%,%{1}%)">{2}</a>'.format(id, code, name);
}
function buttonClick(id, code) {
alert(id + '-' + code);
}
</script>
</head>
<body>
<div id="test"></div>
</body>
</html>
看下测试效果
测试结果正确,并且点击事件中也正确接收到了参数值
案例下载地址:http://xiazai./201612/yuanma/StringFormat_jb51.rar
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# javascript
# string.format
# Java字符串格式化功能 String.format用法详解
# Java String.format()的用法
# Java之String.format()方法案例讲解
# 快速入门介绍Java中强大的String.format()
# Java中String.format的使用方法总结
# JAVA字符串格式化-String.format()的使用
# String.Format大全(C# Java)
# C#中string.format用法详解
# javascript模拟实现C# String.format函数功能代码
# js中的string.format函数代码
# javascript下string.format函数补充
# javascript下利用arguments实现string.format函数
# asp.net String.format中大括号的加入方法
# 为javascript添加String.Format方法
# 下载地址
# 很容易
# 杂乱无章
# 一个问题
# 中也
# 报错
# 看个
# 正常显示
# 变量值
# title
# script
# content
# text
# charset
# utf
# zhangsan
# code
# document
# 张三
# id
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何实现用户注册和登录?(Auth脚手架指南)
如何在宝塔面板中创建新站点?
Laravel如何使用Service Container和依赖注入?(代码示例)
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
,怎么在广州志愿者网站注册?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
javascript中闭包概念与用法深入理解
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
如何在建站主机中优化服务器配置?
免费视频制作网站,更新又快又好的免费电影网站?
装修招标网站设计制作流程,装修招标流程?
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
EditPlus 正则表达式 实战(3)
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
如何有效防御Web建站篡改攻击?
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
Laravel如何实现用户密码重置功能?(完整流程代码)
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
如何在腾讯云服务器上快速搭建个人网站?
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
EditPlus中的正则表达式实战(5)
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
如何实现javascript表单验证_正则表达式有哪些实用技巧
如何用狗爹虚拟主机快速搭建网站?
香港服务器WordPress建站指南:SEO优化与高效部署策略
网站页面设计需要考虑到这些问题
网站制作企业,网站的banner和导航栏是指什么?
如何在搬瓦工VPS快速搭建网站?
如何解决hover在ie6中的兼容性问题
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
专业商城网站制作公司有哪些,pi商城官网是哪个?
原生JS获取元素集合的子元素宽度实例
如何正确选择百度移动适配建站域名?
如何用PHP快速搭建CMS系统?
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
如何在自有机房高效搭建专业网站?
Laravel如何实现多对多模型关联?(Eloquent教程)
如何快速配置高效服务器建站软件?
如何在企业微信快速生成手机电脑官网?
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
Laravel集合Collection怎么用_Laravel集合常用函数详解
怎么用AI帮你设计一套个性化的手机App图标?
jQuery中的100个技巧汇总
如何快速查询域名建站关键信息?

