fix(mstring): 修复前端模板引擎正则错误并同步逻辑

This commit is contained in:
yczpf2019
2026-01-24 19:48:12 +08:00
parent ef98c5e89f
commit 0fc1d9c439

View File

@@ -1,11 +1,11 @@
goog.loadJs('common', () => { goog.loadJs('common', () => {
goog.require('Mixly.Debug'); goog.require('Mixly.Debug');
goog.provide('Mixly.MString'); goog.provide('Mixly.MString');
const { Debug, MString } = Mixly; const { Debug, MString } = Mixly;
/** /**
* @function 使用传入值替换字符串中{xxx} * @function 使用传入值替换字符串中{xxx}
* @param str {string} 传入字符串 * @param str {string} 传入字符串
* @param obj {object} * @param obj {object}
@@ -16,18 +16,18 @@ const { Debug, MString } = Mixly;
* 使用value替换{xxx} * 使用value替换{xxx}
* @return {string} 返回处理后的字符串 * @return {string} 返回处理后的字符串
**/ **/
MString.tpl = (str, obj) => { MString.tpl = (str, obj) => {
if (typeof str !== 'string' || !(obj instanceof Object)) { if (typeof str !== 'string' || !(obj instanceof Object)) {
return str; return str;
} }
for (let key in obj) { for (let key in obj) {
let re = new RegExp("{[\s]*" + key + "[\s]*}", "gim"); let re = new RegExp(`{${key}}`, 'gm');
str = str.replace(re, obj[key]); str = str.replace(re, obj[key]);
} }
return str; return str;
} }
MString.decode = (str) => { MString.decode = (str) => {
try { try {
str = unescape(str.replace(/(_E[0-9A-F]{1}_[0-9A-F]{2}_[0-9A-F]{2})+/gm, '%$1')); str = unescape(str.replace(/(_E[0-9A-F]{1}_[0-9A-F]{2}_[0-9A-F]{2})+/gm, '%$1'));
str = unescape(str.replace(/\\(u[0-9a-fA-F]{4})/gm, '%$1')); str = unescape(str.replace(/\\(u[0-9a-fA-F]{4})/gm, '%$1'));
@@ -35,9 +35,9 @@ MString.decode = (str) => {
Debug.error(error); Debug.error(error);
} }
return str; return str;
} }
MString.strToByte = (str) => { MString.strToByte = (str) => {
var len, c; var len, c;
len = str.length; len = str.length;
var bytes = []; var bytes = [];
@@ -60,9 +60,9 @@ MString.strToByte = (str) => {
} }
} }
return new Int8Array(bytes); return new Int8Array(bytes);
} }
MString.uint8ArrayToStr = (fileData) => { MString.uint8ArrayToStr = (fileData) => {
var dataString = ""; var dataString = "";
for (var i = 0; i < fileData.length; i++) { for (var i = 0; i < fileData.length; i++) {
var convert = (fileData[i]).toString(16); var convert = (fileData[i]).toString(16);
@@ -71,6 +71,6 @@ MString.uint8ArrayToStr = (fileData) => {
dataString = dataString + " " + convert.toUpperCase(); dataString = dataString + " " + convert.toUpperCase();
} }
return dataString; return dataString;
} }
}); });