javascript - 如何在 javascript 中通过特殊字符分割字符串\

标签 javascript arrays string split

我相信这很简单,但我遗漏了一些东西。我想用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/

相关文章:

javascript - 获取作为对象返回的生成器函数,而不是实际调用生成器函数

c - 将数组内的十六进制值显示到标准输出,并将输入与这些十六进制值进行比较

java - 无法获取文本字符串的值

javascript - React Js 循环访问父数组以进行登录授权

python - Python string.maketrans ("","") 是做什么的?

c++ - 输出数组某索引的部分字符串

javascript - C3.js "Uncaught Error: Source data is missing a component at (1,844)!"

javascript - 检测浏览器是否支持特定功能?

javascript - knockout js选择的选项

javascript - 如何在 ng-repeat 中制作选定行的数组?