【发布时间】:2021-06-04 20:28:23
【问题描述】:
我正在尝试替换数组中的数字,但面临一个问题,该问题无法正确管理如何正确定位我真正需要更改的唯一数据。 我将举一个例子来更准确地描述它。 想象一下我的数据数组是这样的:
[“数据”、“电话号码”、“地址”]
我可以通过以下脚本更改号码,但我的第一个问题是它在列中找到的号码之间没有区别,例如“地址”中的“电话号码”(目前不使用它,但我应该在地址中包含邮政编码,这确实是个问题)
此外,我的脚本的第二个和当前问题是,显然在同一个“电话号码”中,一个数字可能会出现更多次,而我只想影响数据的第一个块 - 假设添加/删除我通常拥有的国家代码(甚至将其替换为国家代码),例如“+1 0000000000”或“+54 0000000000” 因此,例如,如果一个号码位于欧盟,它确实使该脚本无用:西班牙使用“+34”,而法国使用“+33”,无论如何它都不会成功,因为它只能识别两者的“+3”。
我发现其他人已经面临这个问题,这似乎解决了将值包装在一个边界内的问题 - 例如像 "\b"constant"\b" - 但要么是错误的语法要么它不是真的适用于我的情况。其他人建议使用 forEach 或 Array.prototype.every 我不明白如何在这种情况下应用。 如果您对此有其他想法,可以尝试一下!
function phoneUPDATES(val)
{
var i= 0;
var array3 = val.value.split("\n");
for ( i = 0; i < array3.length; ++i) {
array3[i] = "+" + array3[i];
}
var arrayLINES = array3.join("\n");
const zero = "0";
const replaceZERO = "0";
const one = "1";
const replaceONE = "1";
const result0 = arrayLINES.replaceAll(zero, replaceZERO);
const result1 = result0.replaceAll(one, replaceONE);
const result2 = result1.replaceAll(two, replaceTWO);
const result3 = result2.replaceAll(thre, replaceTHREE);
const result4 = result3.replaceAll(four, replaceFOUR);
const result5 = result4.replaceAll(five, replaceFIVE);
const result6 = result5.replaceAll(six, replaceSIX);
const result7 = result6.replaceAll(seven, replaceSEVEN);
const result8 = result7.replaceAll(eight, replaceEIGHT);
const result9 = result8.replaceAll(nine, replaceNINE);
const result10 = result9.replaceAll(ten, replaceTEN);
const result11 = result10.replaceAll(eleven, replaceELEVEN);
【问题讨论】:
-
您想将数字更改为做什么?你能给出示例输入和输出吗?
-
line 1 [name1, +1 800000000, Chicago- Illinois, USA] line 2 [name2, +44 111111, Sheffield - England, UK] line 3 [name3, +81 555555555, Nagoya - Japan ] .... ....
标签: javascript arrays replaceall