Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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,我用readFile方法读取了一个文本文档,得到了当前字符串。 我需要修改其中的一些特定字段,保存文件并保持原始格式 在读取的文件中,我得到了以下“字符串” 我只需要更改属性的编号 端口=4000 应用程序端口=4000 我使用的是fs.readFile(filePath,'utf8'),响应是这个文件您可以将其修改为一个对象,设置值,然后使用以下命令返回字符串: var rawValues=“\r\nAPP\u HOST=mo-d6fa.corp\r\nAPP\u PORT=5000\r\n

我用readFile方法读取了一个文本文档,得到了当前字符串。 我需要修改其中的一些特定字段,保存文件并保持原始格式

在读取的文件中,我得到了以下“字符串”

我只需要更改属性的编号

  • 端口=4000
  • 应用程序端口=4000

  • 我使用的是
    fs.readFile(filePath,'utf8')
    ,响应是这个文件

    您可以将其修改为一个对象,设置值,然后使用以下命令返回字符串:

    var rawValues=“\r\nAPP\u HOST=mo-d6fa.corp\r\nAPP\u PORT=5000\r\nINS\u PORT=50100\r\nPORT=66000\r\n”;
    //#1您需要使用string.prototype.split将原始字符串转换为数组
    //#2是时候将数组缩减为能够访问的对象了
    //将值配置为键值对存储
    var values=rawValues.trim().split(“\r\n”).reduce(
    函数(结果、下一步、索引、sourceArray){
    var keyValuePair=sourceArray[index].split(“=”);
    结果[keyValuePair[0]]=keyValuePair[1];
    返回结果;
    }, {});
    //现在,您可以像更改字典一样更改配置值:
    值[“端口”]=“9995”;
    值[“应用程序端口”]=“9999”;
    //如果可能的设置具有有效的JavaScript,则使用点语法
    //变量名。。。
    values.PORT=“9995”;
    values.APP_PORT=“9999”;
    //…更多设置。。。
    //#3一旦编辑了设置,就应该减少每个属性
    //作为包含所有配置的新原始字符串的一部分。
    rawValues=Object.keys(values).reduce(函数(previousValue、属性、索引){
    previousValue+=属性+“=”+值[属性]+“\r\n”;
    返回以前的值;
    }, "");
    //现在PORT和APP_PORT包含了它们的新值。。。
    document.getElementById(“rawResult”).textContent=JSON.stringify(rawValues)
    
    您可以将其修改为对象,设置值,然后使用以下命令返回字符串:

    var rawValues=“\r\nAPP\u HOST=mo-d6fa.corp\r\nAPP\u PORT=5000\r\nINS\u PORT=50100\r\nPORT=66000\r\n”;
    //#1您需要使用string.prototype.split将原始字符串转换为数组
    //#2是时候将数组缩减为能够访问的对象了
    //将值配置为键值对存储
    var values=rawValues.trim().split(“\r\n”).reduce(
    函数(结果、下一步、索引、sourceArray){
    var keyValuePair=sourceArray[index].split(“=”);
    结果[keyValuePair[0]]=keyValuePair[1];
    返回结果;
    }, {});
    //现在,您可以像更改字典一样更改配置值:
    值[“端口”]=“9995”;
    值[“应用程序端口”]=“9999”;
    //如果可能的设置具有有效的JavaScript,则使用点语法
    //变量名。。。
    values.PORT=“9995”;
    values.APP_PORT=“9999”;
    //…更多设置。。。
    //#3一旦编辑了设置,就应该减少每个属性
    //作为包含所有配置的新原始字符串的一部分。
    rawValues=Object.keys(values).reduce(函数(previousValue、属性、索引){
    previousValue+=属性+“=”+值[属性]+“\r\n”;
    返回以前的值;
    }, "");
    //现在PORT和APP_PORT包含了它们的新值。。。
    document.getElementById(“rawResult”).textContent=JSON.stringify(rawValues)
    
    您可以将其修改为对象,设置值,然后使用以下命令返回字符串:

    var rawValues=“\r\nAPP\u HOST=mo-d6fa.corp\r\nAPP\u PORT=5000\r\nINS\u PORT=50100\r\nPORT=66000\r\n”;
    //#1您需要使用string.prototype.split将原始字符串转换为数组
    //#2是时候将数组缩减为能够访问的对象了
    //将值配置为键值对存储
    var values=rawValues.trim().split(“\r\n”).reduce(
    函数(结果、下一步、索引、sourceArray){
    var keyValuePair=sourceArray[index].split(“=”);
    结果[keyValuePair[0]]=keyValuePair[1];
    返回结果;
    }, {});
    //现在,您可以像更改字典一样更改配置值:
    值[“端口”]=“9995”;
    值[“应用程序端口”]=“9999”;
    //如果可能的设置具有有效的JavaScript,则使用点语法
    //变量名。。。
    values.PORT=“9995”;
    values.APP_PORT=“9999”;
    //…更多设置。。。
    //#3一旦编辑了设置,就应该减少每个属性
    //作为包含所有配置的新原始字符串的一部分。
    rawValues=Object.keys(values).reduce(函数(previousValue、属性、索引){
    previousValue+=属性+“=”+值[属性]+“\r\n”;
    返回以前的值;
    }, "");
    //现在PORT和APP_PORT包含了它们的新值。。。
    document.getElementById(“rawResult”).textContent=JSON.stringify(rawValues)
    
    您可以将其修改为对象,设置值,然后使用以下命令返回字符串:

    var rawValues=“\r\nAPP\u HOST=mo-d6fa.corp\r\nAPP\u PORT=5000\r\nINS\u PORT=50100\r\nPORT=66000\r\n”;
    //#1您需要使用string.prototype.split将原始字符串转换为数组
    //#2是时候将数组缩减为能够访问的对象了
    //将值配置为键值对存储
    var values=rawValues.trim().split(“\r\n”).reduce(
    函数(结果、下一步、索引、sourceArray){
    var keyValuePair=sourceArray[index].split(“=”);
    结果[keyValuePair[0]]=keyValuePair[1];
    返回结果;
    }, {});
    //现在,您可以像更改字典一样更改配置值:
    值[“端口”]=“9995”;
    值[“应用程序端口”]=“9999”;
    //如果可能的设置具有有效的JavaScript,则使用点语法
    //变量名。。。
    values.PORT=“9995”;
    values.APP_PORT=“9999”;
    //…更多设置。。。
    //#3一旦编辑了设置,就应该减少每个属性
    //作为包含所有配置的新原始字符串的一部分。
    rawValues=Object.keys(values).reduce(函数(previousValue、属性、索引){
    previousValue+=属性+“=”+值[属性]+“\r\n”;
    返回以前的值;
    }, "");
    //现在PORT和APP_PORT包含了它们的新值。。。
    document.getElementById(“rawResult”).textContent=JSON.stringify(rawValues)
    
    这两个函数的正则表达式非常相似。这里有一个刺:

    var portRegex = /\nPORT=\d+/g;
    var appPortRegex = /\nAPP_PORT=\d+/g;
    
    var fileStr = fs.readFile(filePath, 'utf8');
    fileStr = fileStr
        .replace(portRegex, '\nPORT=' + 4000)
        .replace(appPortRegex, '\nAPP_PORT=' + 4000);
    

    这两个的正则表达式都是
    var portRegex = /\nPORT=\d+/g;
    var appPortRegex = /\nAPP_PORT=\d+/g;
    
    var fileStr = fs.readFile(filePath, 'utf8');
    fileStr = fileStr
        .replace(portRegex, '\nPORT=' + 4000)
        .replace(appPortRegex, '\nAPP_PORT=' + 4000);
    
    /^(PORT\s*=\s*)\d+/m
    /^(APP_PORT\s*=\s*)\d+/m