Получить каждую строку между двумя словами

0

Я попытался сделать панель поиска для моего текущего проекта.

Вот текущий HTML:

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

CSS пока что не важно...

Я дал возможность находить файлы/папки с сервера:

Если вы нажмете enter, 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:*****&"

Я прочитал этот stackoverflow, чтобы получить имена папок или файл: Получить подстроку между двумя символами с помощью javascript

Выходы Reg-Expression:

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

Но нормально это должно быть:

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

Эти "имена файлов" необходимы для их отображения.

Спасибо, что помогли: D

Теги:
string
substring

1 ответ

0
Лучший ответ

Проблема, с которой вы сталкиваетесь, - это регулярное выражение в функции split.
В частности, классы символов содержат список отдельных символов.

Таким образом, [folder:&] действительно соответствует одному символу из набора символов
'f','o','l','d','e','r',':','&'

Чтобы разделить на '&folder:' или '&' или ':' это должно быть что-то вроде этого

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

Аналогично, для '&file:' или '&' или ':'

myfiles = foundedFiles.split(/&?file:|[&:]+/);  
  • 0
    Спасибо, теперь это работает: D Я думал, что это персонажи, но я не понимал, как это может быть осуществимо ... СПАСИБО !!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню