为 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的效果。

原文地址:https://www.cnblogs.com/chengege/p/10900914.html

时间: 2024-08-13 13:02:54

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

Js去掉字符串最后一个逗号

我们在开发中,经常会遇到拼接字符串的时候,但是拼接后字符串会多出一个无用的字符,例如逗号(,),而在js中并没有像C#一样的TrimEnd()方法,所以我们只能通过截取或者正则表达式等方式去去掉最后一个字符,我这的例子是去掉最后一个逗号,其他的跟这个类似 js代码: var str="1,2,3,4,"; var reg=/,$/gi;//此处是正则 str=str.replace(reg,""); 这样我们就达到了去掉最后一个逗号的办法!

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

字符串:string s = "1,2,3,4,5," 1.用的最多的是Substring s=s.Substring(0,s.Length-1) 2.用 RTrim,原来只用来删除最后的空格,也没有仔细看过其它的用法,才发现可以直接trim掉一些字符 s=s.ToString().RTrim(',') 扩展 删除空格 function trim(str){ //删除左右两端的空格 return str.replace(/(^\s*)|(\s*$)/g, "");

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

方法一:运用String对象下的charAt方法 charAt() 方法可返回指定位置的字符. 代码如下 复制代码 str.charAt(str.length – 1) 请注意,JavaScript 并没有一种有别于字符串类型的字符数据类型,所以返回的字符是长度为 1 的字符串 方法二:运用String对象下的substr方法 substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符. 代码如下 复制代码 str.substr(str.length-1,1) 重要事项:EC

为Unity开发的android手机游戏添加一个社会化分享功能

先看一下我最近自己做的一个游戏的效果图,然后在为大家讲述怎么做这样一个分享功能,如果图片不直观,当然如果你也不介意我顺便宣传一下我的游戏,你可以点击以下这个链接,下载我的游戏,进去体验一下里面的这个分享功能:http://zhushou.360.cn/detail/index/soft_id/2954399?recrefer=SE_D_BubbleDeer 好了,接下来我们就来一起探讨一下这个分享功能怎么做. (1)提供下载一个社会化分析的SDK,这个我用的是mob.com网的ShareSDK,

js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScript使用push方法添加一个元素到数组末 JavaScript数组函数unshift、shift、pop、push使用

push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会依次添加到数组的末尾. 该函数属于Array对象,所有主流浏览器均支持该函数. 语法 array.push( item1 [,items... ] )参数 参数 描述item1 任意类型添加到当前数组末尾处的元素.items 可选参数/任意类型要添加到当前数组末尾处的其他项,可以有多个.注意:如果添加的元素类型为数组类型(Array),仍然会被当作一个元素看待,只是这个元素是数组类型而已.如果要合并两个数组,请使

如果使用实例化对象,来为类动态的添加一个 字符串形式的 方法。

import types class MyClass: @staticmethod def extends(self_name, method_name, method_str, ): ''' 使用实例化对象 动态的为 类添加一个 字符串形式的 方法. :param self_name: 调用该方法的对象 的名字 :param method_name: 要添加的方法的名字 :param method_str: 这个方法的 具体代码 ''' method_str = method_str + '\

js实现动态给一个div添加文本内容与简单的日历

js实现动态给一个div添加文本内容(即在文本框中输入一段文字,点击设置文字按钮实现将文本框中的文字添加到div中) <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <style

后台给GridView绑定数据时给每一行添加一个JS方法

--------JS function ReturnDictionaryValues(srcElement) { top.document.getElementById("_DialogFrame_a1").contentWindow.document.getElementById('txt_CAR_ID').value=srcElement.cells[0].innerText; top.document.getElementById("_DialogFrame_a1&qu

为jEasyUi的日期控件添加一个“清空”按钮----通过修改1.4的easyui.min.js

为 jQuery EasyUI 1.4 的datebox或datetimebox添加一个清空按钮 使用场景:为用户指定了日期的格式,且日期可以为空 修改语言包easyui-lang-zh_CN.js 在if ($.fn.datebox){ 的下一行添加 (41或42行) $.fn.datebox.defaults.cleanText = '清空'; 在if ($.fn.datetimebox && $.fn.datebox){  $.extend($.fn.datetimebox.defa