遇到了自认为这是个比较麻烦的问题。
例子:
没有轮子我们就造轮子,但是我现在水平还有限造不出来,能想到的是可以用字符串拼接写。
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的坑里
cc.js.formatStr()
var price=100;
var str=‘The apple’s price is x’;
var rs=str.replace(/x/g,price); //替换掉会返回一个新的字符串 搞不懂方法的时候要看文档噢
ES6 字符模版:
// 字符串中嵌入变量
let name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`