Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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 - Fatal编程技术网

如何在javascript中使用反斜杠拆分字符串?

如何在javascript中使用反斜杠拆分字符串?,javascript,Javascript,我有一个包含两个反斜杠的字符串: str = "active - error - oakp-ms-001 Volume Usage-E:\ PercentUsed E:\" 我只想从上面的字符串中选取“oakp-ms-001”,但由于该字符串中包含反斜杠,我无法拆分该字符串 请告诉我是否有解决方法?请不要用反斜杠变成\\因此,实际上您分配了如下内容: str=“active-error-oakp-ms-001 Volume Usage-E:\\PercentUsed E:\\”首先,我要注意您

我有一个包含两个反斜杠的字符串:

str = "active - error - oakp-ms-001 Volume Usage-E:\ PercentUsed E:\"
我只想从上面的字符串中选取“
oakp-ms-001
”,但由于该字符串中包含反斜杠,我无法拆分该字符串


请告诉我是否有解决方法?

请不要用反斜杠变成\\因此,实际上您分配了如下内容:


str=“active-error-oakp-ms-001 Volume Usage-E:\\PercentUsed E:\\”

首先,我要注意您引用的代码有语法错误:

str = "active - error - oakp-ms-001 Volume Usage-E:\ PercentUsed E:\"
str = "active - error - oakp-ms-001 Volume Usage-E:\\ PercentUsed E:\\";
该字符串没有结尾,因为结尾的
\“
是转义的
,而不是后跟结尾引号的反斜杠

如果字符串上有一个结束引号,那么它就不会有反斜杠(后面有空格的
\
是一个无效转义,最后只是一个空格)

因此,让我们假设一些有效的东西,而不是语法错误:

str = "active - error - oakp-ms-001 Volume Usage-E:\ PercentUsed E:\"
str = "active - error - oakp-ms-001 Volume Usage-E:\\ PercentUsed E:\\";
那里面有反斜杠

您需要做的实际上根本不涉及“拆分”,但如果您想拆分包含反斜杠的内容:

var parts = str.split("\\"); // Splits on a single backslash
但我看不出分裂对你所说的你想要的有多大帮助

您必须确定字符串中靠近所需内容的部分是一致的,然后创建一些内容(可能是带有捕获组的正则表达式),以查找相对于不一致的文本不同的文本

例如:

var str = "active - error - oakp-ms-001 Volume Usage-E:\\ PercentUsed E:\\";
var match = str.match(/error - (.*?) ?Volume/);
if (match) {
    console.log(match[1]); // oakp-ms-001
}
在这里,我假设
“error-”
部分和
“Volume”
部分(前面可能有空格)是一致的,并且您希望它们之间有文本


这是一个非终止字符串(您正在跳转结束引号),因此我假设您的字符串更像这样:

str=“活动-错误-oakp-ms-001卷使用率-E:\\PercentUsed E:\\”;

如果要按反斜杠和空格分割字符串,第一步是按反斜杠分割,操作如下:

step2=str.split(\\”;

注意,这里必须避开反斜杠

现在要做的第二件事是将该字符串按空格拆分,但由于它是一个数组,因此必须使用循环来执行此操作:

var step3 = [];
for(var i = 0; i < step2.length; i++){
    step3 += step2[i].split(" ");
}
var步骤3=[];
对于(变量i=0;i

然后你可以简单地用“,”字符分割第三步,然后在“音量”之前找到短语。这可能不是最好的答案,但它可以得到你想要的数据。

这是这个问题的解决方案 str.split(/[\$]/)

JSON.stringify(文件名).split(“\”)


拆分中应该是双反斜杠

反斜杠应该用字符串中的另一个反斜杠转义。“…但是由于字符串中包含反斜杠,我无法拆分字符串。“为什么不呢?反斜杠与您说要抓取的内容有什么关系?@Vision:字符串不能更改。@T.J Crowder:str.split()方法不能使用反斜杠..但当我删除它们时,它可以正常工作。@user3774907:引用的代码不会产生任何内容,因为它在字符串上没有结尾(
\”
结尾是字符串中的一个
字符,如果字符串以某处结尾,则可能是)。您想写
var parts=str.split(\\”)
?@VisioN:谢谢你抓住它!@T.J Crowder:你在字符串中又添加了一个反斜杠,对吗?但在原始字符串中只有一个反斜杠string@user3774907:在字符串文字中,如果需要实际的反斜杠,可以编写其中两个。这是因为在字符串文字中,反斜杠是“转义”“性格。它的作用取决于下一个角色
\“
是字符串中的一个
,双反斜杠在字符串中产生一个反斜杠,
\n
是换行符,等等。