我相信这很简单,我错过了一些东西.我想用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 ++ /代码/崇高和替换所有\
与\\
由于您正在对字符串进行硬编码,因此需要转义所有反斜杠.之后你可以使用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";