我需要根据数组中的模式更改字符串中的所有字母。开始但无法继续。有一个想法是通过蛮力获取所有的信件,但工作速度将有很多不足之处。在这段代码中,我在数组中创建了一个变量,它将被写入新行:
array.forEach(function(item, i, arr) {
arr[i]["__TMP__"] =
stringTable.indexOf( item["name"].toString().charAt(0).toUpperCase() );
});
有什么办法可以做到这一点replace吗?
模板数组:
stringTable: string[] = [
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z"
];
输入字符串:Tim
输出字符串:019008012(019-t, 008-i, 012-m)
最好使用对象而不是数组,在这种情况下,不需要搜索,例如
获取要替换的所需字符串将归结为简单地获取属性:
此代码可用于传递给方法的函数
replace如果你正确理解了这个问题,你可以试试这个。
这是出来的代码,我们使用的不是数组,而是 charAt + 如果用户输入非英文字母,我们会捕获错误。
对于此代码,重要的是要替换的字符
['h', 'e', 'l', 'п', 'р', 'и', '!', 'в', 'е', 'т', 'o']中没有数字。如果有数字,请在所有条件下更详细地写出问题。决定将取决于此。PS:如果有数字:可以先用正则表达式替换数字,再替换其余字符。因为如果我们先替换字符串中的字符,然后开始替换数字,就好像字符串中会出现更多的数字......