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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM