JQuery извлечь имя файла с помощью переменной - PullRequest
1 голос
/ 23 октября 2019

Я работаю над своим jQuery, так как хочу извлечь имя файла, чтобы я мог выводить их в элементе при извлечении данных из вызова Ajax.

Если у меня есть строка 0.2 с использованием переменной attid, я хочу получить имя файла what-is-bootstrap.png. Если у меня есть строка 0.1 с использованием переменной attid, я хочу получить имя файла noname.gif и т. Д.

Но когда я пытаюсь это сделать:

var photoFilename = filename.split('filename: ');
$('#photo_filename').text(photoFilename1);
$('#photo_dialog').show();

Iполучит что-то вроде этого:

noname.gif attid: 0.2

Я также попробовал это:

var photoFilename = filename.split('attid: ');

И я также попробовал это:

var photoFilename = filename.split(attid);

Я получу это:

 filename: noname.gif attid: 0.2 filename: what-is-bootstrap.png

Я пытался использовать функцию .replace для удаления attid: 0.2, но моя переменная attid показывает другую строку, поэтому мне трудно удалить строку для 0.2когда у меня есть 0.1 строка.

Можете ли вы показать мне пример того, как я могу получить имя файла, когда моя переменная attid со строкой, такой как 0.1, 0.2 и т. д.

Вот полный код:

attid = '0.1'
get_string = 'attid: ' +attid+ ' filename: ';

$.ajax({
    url: 'readMail.php',
    type: 'POST',
    data : {
        mailfolder: mailfolder, 
        email_number: email_number,
        folder: folder,
        readmail: readmail,
        total: total_index
    },
    dataType: 'json',

    success: function(res) {
        filename = res.emailBodyMessage.attached_files;
        var photoFilename = filename.split(get_string);
        $('#photo_filename').text(photoFilename1);
        $('#photo_dialog').show();
   }
});

Полный вывод:

attid: 0.1 filename: noname.gif
attid: 0.2 filename: what-is-bootstrap.png

Ответы [ 3 ]

1 голос
/ 23 октября 2019

надеюсь, что мой фрагмент может вам чем-то помочь ..

// function to grab filename
function getFileName(text, key) {
  delimiter = "attid: "+key+" filename: "
  return (text.split(delimiter))[1].split(" ")[0]
}

// example text
text = "attid: 0.1 filename: noname.gif attid: 0.2 filename: what-is-bootstrap.png attid: 0.3 filename: something.bmp"

// get 0.1
file1 = getFileName(text, "0.1");

// get 0.2
file2 = getFileName(text, "0.2");

// get 0.3
file3 = getFileName(text, "0.3");

//print to console
console.log(file1, file2, file3)

ОБНОВЛЕНИЕ !!

attid = '0.1'
get_string = 'attid: ' +attid+ ' filename: ';

$.ajax({
    url: 'readMail.php',
    type: 'POST',
    data : {
        mailfolder: mailfolder, 
        email_number: email_number,
        folder: folder,
        readmail: readmail,
        total: total_index
    },
    dataType: 'json',

    success: function(res) {
        filename = res.emailBodyMessage.attached_files;
        var photoFilename = filename.split(get_string);

        // please try to update this line :)
        $('#photo_filename').text(photoFilename[1].split(" ")[0]);

        $('#photo_dialog').show();
   }
});
0 голосов
/ 23 октября 2019

Используя split и for цикл с indexOf .. См. Следующий код

var string = "attid: 0.1 filename: noname.gif attid: 0.2 filename: what-is-bootstrap.png"; // The String Here

console.log(Get_FileName_By_attid(string , '0.1'));


function Get_FileName_By_attid(string , attid){
  var string_split = string.split(/attid/g);
  for(var i = 1 ; i < string_split.length ; i++){
    var NewString = "attid" + string_split[i];
    if(NewString.indexOf(attid) > -1){
      return ((NewString.split('filename:'))[1].trim());
    }
  }
}
0 голосов
/ 23 октября 2019

var photoFilename = filename.split ('') [3];split () возвращает массив, а js srrays начинаются с нуля, поэтому [3] фактически является четвертым элементом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...