使用.split()将字符串转换为数组(需要改进)

时间:2016-02-20 00:12:36

标签: javascript arrays regex string

我尝试使用JavaScript来转换此字符串

.txt|.pdf|.xls|.xlsx|.doc|.docx|.rtf|.jpg|.jpeg|.png|.gif

进入这个数组

["txt", "pdf", "xls", "xlsx", "doc", "docx", "rtf", "jpg", "jpeg", "png", "gif"]

但它给了我这个

[".txt", "pdf", "xls", "xlsx", "doc", "docx", "rtf", "jpg", "jpeg", "png", "gif"]

它将点保持在第一个元素的前面。因为我不知道正则表达式,我该怎么办?这是我的代码:

let fileTypes = string.split('|.');

5 个答案:

答案 0 :(得分:6)

问题似乎只是第一个点,所以你可以做到

s = ".txt|.pdf|.xls|.xlsx|.doc|.docx|.rtf|.jpg|.jpeg|.png|.gif"
s.substr(1).split("|.")

答案 1 :(得分:3)

这样的事情:

var string = '.txt|.pdf|.xls|.xlsx|.doc|.docx|.rtf|.jpg|.jpeg|.png|.gif';

var arr = string.replace(/\./g,'').split('|');

首先剥离所有点,然后在|上分割。通过管道分离是最重要的......因此,如果重要的话,它将采用更灵活的字符串。

答案 2 :(得分:1)

第一个点与split()不匹配。一个简单的解决方案是首先替换它:

let fileTypes = string.replace(/^\./,'').split('|.');

var string = '.txt|.pdf|.xls|.xlsx|.doc|.docx|.rtf|.jpg|.jpeg|.png|.gif';

var fileTypes = string.replace(/^\./,'').split('|.');

console.log(fileTypes);

答案 3 :(得分:0)

我使用函数.split和.join就像这样:



var typeFile = ".txt|.pdf|.xls|.xlsx|.doc|.docx|.rtf|.jpg|.jpeg|.png|.gif";

var newstring =  typeFile.split('.').join('').split('|');
console.log(newstring);




答案 4 :(得分:0)

substr()方法从指定位置的字符开始提取字符串的一部分,并返回指定数量的字符。所以如果你先从第一个位置使用substr然后使用split,那会更好()你已经完成了。

s =“。txt | .pdf | .xls | .xlsx | .doc | .docx | .rtf | .jpg | .jpeg | .png | .gif”