一个小问题:通过变量替换字符串的内容(我是来寻求上岸的)

遇到了自认为这是个比较麻烦的问题。
例子:

没有轮子我们就造轮子,但是我现在水平还有限造不出来,能想到的是可以用字符串拼接写。

var string = `我现在有${myMoney}元钱,买东西话费${payMoney}元`;

或者直接用+拼接字符串就完事儿了

+1
注: typescript 才可用

这个有正则表达式的实现的.。。
/**

  • A string tool to construct a string with format string.

  • for example:

  •  cc.formatStr("a: %d, b: %b", a, b);
    
  •  cc.formatStr(a, b, c);
    
  • @returns {String}
    */
    cc.formatStr = function(){
    var args = arguments;
    var l = args.length;
    if (l < 1) return ‘’;
    var REGEXP_NUM_OR_STR = /(%d)|(%s)/;

    var i = 1;
    var str = args[0];
    var hasSubstitution = typeof str === ‘string’ && REGEXP_NUM_OR_STR.test(str);
    if (hasSubstitution) {
    var REGEXP_STR = /%s/;
    for (; i < l; ++i) {
    var arg = args[i];
    var regExpToTest = typeof arg === ‘number’ ? REGEXP_NUM_OR_STR : REGEXP_STR;
    if (regExpToTest.test(str))
    str = str.replace(regExpToTest, arg);
    else
    str += ’ ’ + arg;
    }
    }
    else {
    if (l > 1) {
    for (; i < l; ++i) {
    str += ’ ’ + args[i];
    }
    }
    else {
    str = ‘’ + str;
    }
    }
    return str;
    };

现在在js的坑里:9:

cc.js.formatStr()

1赞

var price=100;
var str=‘The apple’s price is x’;
var rs=str.replace(/x/g,price); //替换掉会返回一个新的字符串 搞不懂方法的时候要看文档噢

xxxx{0},yyyy{1}…

ES6 字符模版:

// 字符串中嵌入变量
let name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`
1赞