javascript 字符串格式化,javascript原型

来源:互联网 发布:淘宝刀剑能开刃吗 编辑:程序博客网 时间:2024/06/17 17:51

字符串格式化

我们的思路是利用replace方法

replace 本身是JavaScript字符串对象的一个方法,它允许接收两个参数:
replace([RegExp|String],[String|Function])
第1个参数可以是一个普通的字符串或是一个正则表达式
第2个参数可以是一个普通的字符串或是一个回调函数
如果第1个参数是RegExp, JS会先提取RegExp匹配出的结果,

然后用第2个参数逐一替换匹配出的结果
如果第2个参数是回调函数,每匹配到一个结果就回调一次,

每次回调都会传递以下参数:
result: 本次匹配到的结果
$1,...$9: 正则表达式中有几个(),就会传递几个参数,
$1~$9分别代表本次匹配中

每个()提取的结果,最多9个

offset:记录本次匹配的开始位置
source:接受匹配的原始字符串


代码如下:

    var name='nnnn{a1}KKKK{a2}LLLL'    var kwargs={'a1':'9999','a2':'666'}    String.prototype.format=function (kwargs) {        return this.replace(/\{(\w+)\}/g,function (k,v) {            console.log(k,v)//{a1} a1            return kwargs[v]            })        }    Newname=name.format(kwargs)    console.log(Newname)//nnnn9999KKKK666LLLL

注:/\{(\w+)\}/g 中,//表示里面是正则表达式,g表示匹配所有


----------------------------------------------------------------------------------------------------------------


Js所有的函数都有一个prototype属性,这个属性引用了一个对象,即原型对象,也简称原型。

function P() {    }    P.prototype.name='go'    P.prototype.sayname=function () {        alert(this.name)    }    var p1=new P()    p1.sayname()//go

对比python,相当与类的函数属性,每个类的实例对象都可以调用
























原创粉丝点击