liudong
2023-05-29 340f156319b863525e50e900c58e59b86ecb3d5e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var nargs = /\{([0-9a-zA-Z]+)\}/g
var slice = Array.prototype.slice
 
module.exports = template
 
function template(string) {
    var args
 
    if (arguments.length === 2 && typeof arguments[1] === "object") {
        args = arguments[1]
    } else {
        args = slice.call(arguments, 1)
    }
 
    if (!args || !args.hasOwnProperty) {
        args = {}
    }
 
    return string.replace(nargs, function replaceArg(match, i, index) {
        var result
 
        if (string[index - 1] === "{" &&
            string[index + match.length] === "}") {
            return i
        } else {
            result = args.hasOwnProperty(i) ? args[i] : null
            if (result === null || result === undefined) {
                return ""
            }
 
            return result
        }
    })
}