我试图为我当前的项目制作一个搜索栏。
这是当前的 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:|[&:]+/);