为 JS 的字符串,添加一个 format 的功能。
<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 的功能。的更多相关文章
- js 去掉字符串最后一个逗号:笑死我了
今天突然遇到js 去掉字符串最后一个逗号的问题,本想偷懒搜个代码吧,没想到看到百度的第一条记录是这么一篇文章. 网易博客: http://blog.163.com/li_crane/blog/stat ...
- JS 删除字符串最后一个字符的几种方法
字符串:string s = "1,2,3,4,5," 目标:删除最后一个 "," 方法:1.用的最多的是Substring,这个也是我一直用的 s=s.Sub ...
- js获取字符串最后一个字符代码
方法一:运用String对象下的charAt方法 charAt() 方法可返回指定位置的字符. 代码如下 复制代码 str.charAt(str.length – 1) 请注意,JavaScript ...
- js 为字符串添加样式
<html><body> <script type="text/javascript"> var txt="Hello World!& ...
- js写的替换字符串(相当于js操作字符串的一个练习)
1.达到的效果 1./main_1.do,/left_1.do -> main:1,left:1 2./tbl_type/v_list_{id}.do -> tbl_type:list:{ ...
- js 去掉字符串最后一个字符
var str = str.substring(0,str.length-1); alert(str); 注:length 需小写.
- 在 JavaScript 中,我们能为原始类型添加一个属性或方法吗?
原始类型的方法 JavaScript 允许我们像使用对象一样使用原始类型(字符串,数字等).JavaScript 还提供了这样的调用方法.我们很快就会学习它们,但是首先我们将了解它的工作原理,毕竟原始 ...
- 通过jquery.cookie.js实现记住用户名、密码登录功能
Cookies 定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术: 下载与引入:jquery.cookie.js基于jquery:先引入jquery,再引入:jq ...
- js移除最后一个字符,js替换字符串的连接符号,js移除最后一个分隔符号
js移除最后一个字符 js移除最后一个分隔符号 js替换字符串的连接符号 >>>>>>>>>>>>>>>> ...
随机推荐
- js callback回调的一种写法
getLocation.cityname(latitude, longitude, function (data1) { SetCityCallBack(data1); }); 定义方法: var g ...
- C# 转json
#region MyRegion StringBuilder sb = new StringBuilder(); sb.Append("{"); foreach (System.R ...
- Spring前台填充数据
举例: <div>${userinfo.name}</div> 显示规则 1.先判断对象有没有存在,对象存在的时候,才会查找对象里的字段.这个时候字段必须正确.2.如果对象 ...
- Tarjan求LCA胡乱写的板子 x
首先Tarjan算法的基本思路: 1.任选一个点为根节点,从根节点开始. 2.遍历该点u所有子节点v,并标记这些子节点v已被访问过. 3.若是v还有子节点,继续搜索下去,否则下一步. 4.合并v到u上 ...
- Lucas定理初探
1.1 问题引入 已知\(p\)是一质数,求\(\dbinom{n}{m}\pmod{p}\). 关于组合数,它和排列数都是组合数学中的重要概念.这里会张贴有关这两个数的部分内容. 由于Lucas定理 ...
- 学习sklearn聚类使用
学习利用sklearn的几个聚类方法: 一.几种聚类方法 1.高斯混合聚类(mixture of gaussians) 2.k均值聚类(kmeans) 3.密度聚类,均值漂移(mean shift) ...
- 二、PHP链接mongodb
<?php $db=new Mongo("mongodb://sa:sa@localhost:27017"); $c=$db->selectDB("TestD ...
- centos安装FTP脚本
一键安装脚本 只需要自己设置一下脚本开头的几个字符串参数即可 #!/bin/bash port=" user="code" pass=" dir="/ ...
- ffmpeg循环推流
ffmpeg循环推流 有时候需要轮播出一路直播 这个时候循环推流就比较方便了 ffmpeg -stream_loop - -re -i d:/Media/a.ts -vcodec h264 -acod ...
- Detected memory leaks! 解决方法
Detected memory leaks!Dumping objects ->f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\occmgr.cpp(195) ...