Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:给定一个变量数组,函数将删除字符并输出另一个数组_Javascript_Regex - Fatal编程技术网

Javascript:给定一个变量数组,函数将删除字符并输出另一个数组

Javascript:给定一个变量数组,函数将删除字符并输出另一个数组,javascript,regex,Javascript,Regex,所以我还在学习Javascript,所以我知道这是一个基本的问题,我真的很想知道我遗漏了什么。我有一个变量数组,我需要一个函数来删除特殊字符,并将结果作为数组返回 这是我的密码: var myArray = [what_hap, desc_injury]; function ds (string) { string.replace(/[\\]/g, ' ') string.replace(/[\"]/g, ' ') string.replace(/[\/]

所以我还在学习Javascript,所以我知道这是一个基本的问题,我真的很想知道我遗漏了什么。我有一个变量数组,我需要一个函数来删除特殊字符,并将结果作为数组返回

这是我的密码:

    var myArray = [what_hap, desc_injury];
    function ds (string) {
    string.replace(/[\\]/g, ' ')
    string.replace(/[\"]/g, ' ')
    string.replace(/[\/]/g, '-')
    string.replace(/[\b]/g, ' ')
    string.replace(/[\f]/g, ' ')
    string.replace(/[\n]/g, ',')
    string.replace(/[\r]/g, ' ')
    string.replace(/[\t]/g, ' ');
    return string;
}
ds (myArray);
我知道这行不通,所以我只是想学习最简单、最干净的输出方式:

[whatHap: TEXTw/oSpecialCharacters, descInj: TEXTw/oSpecialCharacters]

有人愿意引导一个noobie吗?谢谢!:)

关于这个问题的评论是正确的,你需要更详细地说明你在问什么,但我会尝试从我对你预期结果的假设中给你一些指导

需要注意的一点是,
string.replace()
不会更改字符串本身,它会返回一个包含替换项的新字符串,如图中所示。要进行多次替换,您需要执行
string=string.replace('a','-')

关于整个阵列的解决方案。有几种方法可以处理javascript中的数组:,或。我敦促您阅读每一篇文章的文档,并自己查找示例,以了解每一篇文章及其最有用的地方

由于要替换数组中的所有内容,我建议使用
.map()
或者
.foreach()
,因为它们将为您循环遍历整个数组,而无需您自己跟踪索引。下面是使用每种方法实现我认为您要实现的目标的示例

地图 弗雷奇 每个函数的内部变量可以是您需要的任何替换项,也可以用您已有的函数替换它们<代码>映射在这种情况下更强大,因为它将替换数组中的值,用于将现有值映射为每个元素的新对应值。另一方面,
forEach
解决方案要求您创建元素并将其添加到一个新数组中,当您需要对数组中的每个元素执行数组本身之外的操作时,这会更好


注:如果您想要更复杂的替换,但在这种情况下并不真正需要它们,那么您应该查看有关构建正则表达式的帮助。我意识到我编写目标的方式并不完全清楚。我想我应该说的是,给定几个文本字符串,我想去掉一些特定的字符(例如引号),然后将它们输出到一个可以访问的数组中。我读过关于数组的书,这是我学习JS的经验,阅读代码和实际执行代码是两件截然不同的事情

所以我很欣赏对文档的引用,我真正需要看到的是一个真实的示例代码

我最终找到了一个有效的解决方案:

function escapeData(data) {
        return data
          .replace(/\r/g, "");
    }

        var result = {};
        result.what_hap_escaped = escapeData($what_hap);
        result.desc_injury_escaped = escapeData($desc_injury);

        result;

我感谢大家的时间,希望我的问题结构不合理,不会让你们太恼火:)

大家好,欢迎来到StackOverflow。请花些时间阅读帮助页面,特别是命名和的部分。更重要的是,请阅读。您可能还想了解。请提供一个输入/输出对示例。在没有相关输入的情况下发布所需的输出没有多大帮助。此外,请详细说明“特殊角色”的含义。如果您的意思是“在js中具有特殊转义序列的字符”,我不明白为什么会包含“/”,但却缺少例如“\0”。我的其他猜测由于其他原因而失败,我无法重建你的意思。谢谢你花时间写这篇文章。非常有用,特别是在字符串操作方面。我读过forEach,但我不知道如何在这里实现它。非常感谢。
function removeSpecial(myArray) {
    let withoutSpecial = [];
    myArray.forEach(function(str) {
        str = str.replace(/[\\"\b\f\r\t]/g, ' ');
        // replace / with -
        str = str.replace(/\//g, '-');
        // replace \n with ,
        str = str.replace(/\n/g, ',');
        withoutSpecial.push(str)
    });
    return withoutSpecial;
}

let myArray = ["string\\other", "test/path"];
let withoutSpecial = removeSpecial(myArray);  // ["string other", "test-path"]
function escapeData(data) {
        return data
          .replace(/\r/g, "");
    }

        var result = {};
        result.what_hap_escaped = escapeData($what_hap);
        result.desc_injury_escaped = escapeData($desc_injury);

        result;