获取两个单词之间的每个字符串


Get EVERY String between two words

我试图为我当前的项目制作一个搜索栏。

这是当前的 HTML:

<input type="text" id="searchbar"/>

CSS现在并不重要...

我使从服务器查找文件/文件夹成为可能:

如果你按回车键,JavaScript 会发送一个 $.post()

这是我的Javascript:

$.post( "files/openFolder.php",{folder : $searchtext}, function() {
})
.success(function(data) {
    if(data != "") {
        if(data.indexOf("folder:") > -1){ //contains folders..!
            foundedFolders = data;
            myfolders = foundedFolders.split(/[folder:&]/);
            myfolders = cleanArray(myfolders);
            generateFolderBoxes(myfolders);
            folderBoxSettings();
        }else if(data.indexOf("file:") > -1){ // contains files..!
            foundedFiles = data;
            myfiles = foundedFiles.split(/[file:&]/);
            myfiles = cleanArray(myfiles); //cleans the Array from empty Strings.
            generateFileBoxes(myfiles);
            fileBoxSettings();  
        }
    }
})
.fail(function() {
    alert("Sorry doesn't worked, try later again.");
});

我的问题在这里:

myfolders = foundedFolders.split(/[folder:&]/);

myfiles = foundedFiles.split(/[file:&]/);

PHP输出:

"folder:****&file:*****&file:*****&"

我阅读了这个堆栈溢出,以获取文件夹名称或文件:使用 javascript 获取两个字符之间的子字符串

Reg-表达式输出:

["such", " - Kop", ".txt", "such", ".txt", "t", "st - Kop", ".txt", "t", "st.txt"] 

但正常应该是:

["suche - Kopie.txt","suche.txt","test - Kopie.txt","test.txt"]

需要这些"文件名"来显示它们。

感谢您帮助:D

您遇到的问题是拆分函数中的正则表达式。
具体而言,字符类包含单独字符的列表。

因此,[folder:&]确实匹配字符
集中的单个字符 'f','o','l','d','e','r',':','&'

要拆分'&folder:''&'':'它应该是这样的

myfolders = foundedFolders.split(/&?folder:|[&:]+/);  

同样,对于'&file:''&'':'

myfiles = foundedFiles.split(/&?file:|[&:]+/);