我相信这很简单,但我遗漏了一些东西。我想用javascript在windows中分割物理路径。所以我尝试使用 String#split
函数,但我的结果被检查了。
对于这个字符串
"C:\CLC\VIDA\Web\_REPOSITORIO\Colectivos\ReembolsosWeb\TMP_011906169_01_01.pdf"
我得到了这个结果
var test = "C:\CLC\VIDA\Web\_REPOSITORIO\Colectivos\ReembolsosWeb\TMP_011906169_01_01.pdf";
test.split("\"); //throws error
test.split("\\"); //result in -> ["C:CLCVIDAWeb_REPOSITORIOColectivosReembolsosWebTMP_011906169_01_01.pdf"]
test.split(/\\/); // -> the regex is the same as above
最后一件事,在我的测试中,我发现为了得到我想要的结果,我可以这样做
var test2 = "C:\\CLC\\VIDA\\Web\\_REPOSITORIO\\Colectivos\\ReembolsosWeb\\TMP_011906169_01_01.pdf"
test2.split("\\"); // -> ["C:", "CLC", "VIDA", "Web", "_REPOSITORIO", "Colectivos", "ReembolsosWeb", "TMP_011906169_01_01.pdf"]
所以我的问题是,如何从 test
var 中拆分字符串以从最后一个案例中获取数组?
最佳答案
JavaScript 中的字符串支持通过反斜杠 (\
) 进行转义序列。例如,如果您的字符串中需要一个制表符,您可以在字符串中的任何位置添加 \t
,它将被替换为制表符,\n
将被替换为一个新行。
test
中的反斜杠要么转换为各自的字符,要么被删除,因为它们是无效的转义序列。
为了解决这个问题,您可以用另一个反斜杠转义以获得一个普通的反斜杠。缺点是这不能在 javascript 中完成。一般来说,我将字符串粘贴到记事本/N++/Code/Sublime 中,并将所有 \
替换为 \\
由于您正在对字符串进行硬编码,因此您需要转义所有反斜杠。之后,您可以使用 test.split("\\")
,它本身包含一个转义的反斜杠。
因此,就 Javascript 而言,您的代码如下所示。
var test = "C:CLCVIDAWeb_REPOSITORIOColectivosReembolsosWebTMP_011906169_01_01.pdf";
为了让 javascript 正确地看到字符串,你需要让它看起来像这样......
var test = "C:\\CLC\\VIDA\\Web\\_REPOSITORIO\\Colectivos\\ReembolsosWeb\\TMP_011906169_01_01.pdf";
关于javascript - 如何在 javascript 中通过特殊字符分割字符串\,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34362821/