<script>
String.prototype.format = function (kwargs) {
var ret = this.replace(/\{(\w+)\}/g, function (substring, args) {
return kwargs[args]
});
}
</script>

js 中是没有 format 这种格式化的方法的。

但是 因为字符串也是一个原型类,所有的方法都在  prototype中。 所以可以向这个里面添加一个 自定义的 format 方法。

  接收的参数因该是这样: {'age':18, 'name':'allan'}

  需要进行格式化的字符串:‘学生名:{name},年龄:{age}’

这样在使用 自定义的 format 方法时,

  this 就指的是  ‘{age}{name}’  。 使用replace进行替换, 第一个参数接收一个正则表达式,/\{(\w+)\}/g 表示全局匹配 大括号中的任意字母数字。

  第二个参数是,一个函数, 这个函数接收两个参数。每匹配成功一次就会将匹配的到的字符串交给后面的函数,

  substring 就是  {age}  和 {name}, 这就是匹配到的内容。

  args 就是 age 和 name。 在匹配到的基础上 将其中 分组中的东西。

  拿到了   age 和 name,  就可以到 (kwargs == {'age':18, 'name':'allan'}) kwargs 这个字典中,取出键所对应的值。 然后返回。

  这里的返回值, 就会交给 replace ,替换掉通过正则匹配到的 字符。

最终 :

  ‘学生名:{name},年龄:{age}’.format({'age':18, 'name':'allan'})

得到的结果就会是:学生名:allan,年龄:18.   这样就达到了 python中 format的效果。

为 JS 的字符串,添加一个 format 的功能。的更多相关文章

  1. js 去掉字符串最后一个逗号:笑死我了

    今天突然遇到js 去掉字符串最后一个逗号的问题,本想偷懒搜个代码吧,没想到看到百度的第一条记录是这么一篇文章. 网易博客: http://blog.163.com/li_crane/blog/stat ...

  2. JS 删除字符串最后一个字符的几种方法

    字符串:string s = "1,2,3,4,5," 目标:删除最后一个 "," 方法:1.用的最多的是Substring,这个也是我一直用的 s=s.Sub ...

  3. js获取字符串最后一个字符代码

    方法一:运用String对象下的charAt方法 charAt() 方法可返回指定位置的字符. 代码如下 复制代码 str.charAt(str.length – 1) 请注意,JavaScript ...

  4. js 为字符串添加样式

    <html><body> <script type="text/javascript"> var txt="Hello World!& ...

  5. js写的替换字符串(相当于js操作字符串的一个练习)

    1.达到的效果 1./main_1.do,/left_1.do -> main:1,left:1 2./tbl_type/v_list_{id}.do -> tbl_type:list:{ ...

  6. js 去掉字符串最后一个字符

    var str = str.substring(0,str.length-1); alert(str); 注:length 需小写.

  7. 在 JavaScript 中,我们能为原始类型添加一个属性或方法吗?

    原始类型的方法 JavaScript 允许我们像使用对象一样使用原始类型(字符串,数字等).JavaScript 还提供了这样的调用方法.我们很快就会学习它们,但是首先我们将了解它的工作原理,毕竟原始 ...

  8. 通过jquery.cookie.js实现记住用户名、密码登录功能

    Cookies 定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术: 下载与引入:jquery.cookie.js基于jquery:先引入jquery,再引入:jq ...

  9. js移除最后一个字符,js替换字符串的连接符号,js移除最后一个分隔符号

    js移除最后一个字符 js移除最后一个分隔符号 js替换字符串的连接符号 >>>>>>>>>>>>>>>> ...

随机推荐

  1. JAVA如何跳出多层循环

    1. break.continue.return 的区别: break默认是跳出最里层的循环,也就是break所在的最近的那层循环 continue是终止本次循环,继续下次循环 return 结束当前 ...

  2. 51 Nod 最大子矩阵和

    1051 最大子矩阵和  基准时间限制:2 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的 ...

  3. 【BZOJ5415&UOJ393】归程(Kruskal重构树,最短路)

    题意:From https://www.cnblogs.com/Memory-of-winter/p/11628351.html 思路:先从1开始跑一遍dijkstra,建出kruskal重构树之后每 ...

  4. vue中的js绑定样式

    添加class 对象形式添加   activated为true时p标签的class为activated false时为空 <div id="app"> <p :c ...

  5. DVWA--File Inclusion

    0x01了解什么叫file inclusion File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(incl ...

  6. 14.多线程设计模式 - Master-Worker模式

    多线程设计模式 - Master-Worker模式 并发设计模式属于设计优化的一部分,它对于一些常用的多线程结构的总结和抽象.与串行相比并行程序结构通常较为复杂,因此合理的使用并行模式在多线程并发中更 ...

  7. vue-cli构建一个工程

    使用前,必须要先按照 node:安装node Vue CLI官方文档:https://cli.vuejs.org/zh/ 安装node地址:https://nodejs.org/zh-cn/downl ...

  8. js关闭当前页面(窗口)的几种方式

    1. 不带任何提示关闭窗口的js代码  代码如下: <a href="javascript:window.opener=null;window.open('','_self');win ...

  9. Centos 6.5 Multipath 初始配置

    # This is a basic configuration file with some examples, for device mapper # multipath. # For a comp ...

  10. MethodChannel 实现flutter 与 原生通信

    Flutter 步骤 目的:在flutter页面中主动调用原生页面中的方法. 1 在widget中,定义MethodChannel变量 static const MethodChannel metho ...