使用JS/NodeJS测试并读取文件中的变量
Test and read variables from file with JS/NodeJS
我正在创建一个能够读取环境文件的脚本。内容可以如下:
var1 = 'test'
var2='test2'
var1= 'test'
var3 = 4
我想提取密钥和值,例如:
var1 = 'test' -> result[0]: var1, result[1]: test
如何编写一个函数来测试用readFile
读取的行是否有效,然后测试其key
(例如var1)和value
(例如test)?是否可以在不运行两个regexp函数的情况下使用regexp提取键和值?
一旦存储了行,就可以执行以下操作:
// line is the line you are processing, object is where you save your stuff
function processLine(line, object) {
var parts = line.split("=");
if (parts.length<2)
return;
// key is parts[0], value is parts[1]
var key = parts.shift();
// if we have equal signs in our value, they will be preserved
var value = parts.join("=");
// get rid of any trailing or preceding spaces
key = key.trim();
value = value.trim();
// is the value a quoted string?
if ((value.charAt(0)==="'" && value.charAt(value.length-1)==="'") ||
(value.charAt(0)==='"' && value.charAt(value.length-1)==='"'))
value = value.slice(1, value.length-1);
// otherwise we assume it's a number
else
value = parseFloat(value);
// TODO: you can check for other stuff here, such as 'true', 'false' and 'null'
// finally, assign it to your object
object[key] = value;
}
现在你只需要为每一行调用你的函数,例如:
var values = {};
for (var i in lines)
processLine(lines[i], values);
这种方法的注意事项很多。通过一些额外的代码可以很容易地修复它们,但我建议使用JSON之类的东西来定义配置值(如果它们就是这样的话)。javascript中有对JSON解析的本地支持,所以您可以直接使用它。也许你应该重新考虑你的方法。
您可以尝试以下JS代码:
function validate(str)
{
var re = /^('w+)'s*'='s*(['"]?)(.*?)'2$/;
if ((m = re.exec(str)) !== null) {
return [m[1], m[3]];
}
}
document.getElementById("res").innerHTML =
"Result [0]: " + validate("var1 = 'test'")[0] + "<br>Result [1]: " + validate("var1 = 'test'")[1];
<div id="res"/>
-
读这行。。用空替换引号
//line = "var1 = 'test'"; line = line.replace(/'/g, "");
-
按分隔符
=
拆分var result = line.split("="); //result is an array containing "var1" and "test"
line = "var1 = 'test'";
line = line.replace(/'/g, "");
var result = line.split("=");
document.write("key => "+result[0].trim());
document.write(": value => "+result[1].trim());
相关文章:
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 如何将变量传递到另一个js文件
- 如何使用php文件中的GET来获取我在.js文件中声明的变量
- 如何在定义js文件后为外部javascript文件设置变量
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 使用JSON文件中的变量(字符串)填充文本区域
- 使用JS/NodeJS测试并读取文件中的变量
- 如何使全局变量仅特定于该文件
- 在节点中创建文件全局变量
- 在Javascript文件中获取PHP变量
- nodegzip将文件解压缩到变量中
- 访问javascript文件输入变量的值
- 将变量传递到.txt文件
- 如何将CSV数据从变量下载到CSV文件
- Javascript 文件变量声明/创建错误:此对象不支持此操作
- js警报框中的资源文件变量给出字符串ASCII代码问题
- 如何创建一个文件变量
- 加载外部文件变量,同时避免浏览器外部文件缓存
- 如何声明配置文件变量并将它们集成到JS文件中?如何为构建排除/包含函数
- 如何使用 Commonjs 在视图中获取主干应用程序文件变量