извлечение строки из строки с неизвестной длиной

#javascript #jquery

#javascript #jquery

Вопрос:

 var largePictureURL = response.d[i];
//for this example see largePictureURL
largePictureURL = "../uploads/191mapTool_thumb.png_tempLargeFileName=mapTool.png"
  

largePictureURL всегда будет содержать _tempLargeFileName фактическое имя файла. Не зная фактического имени файла, как я могу извлечь _tempLargeFileName фактическое имя файла из largePictureURL ?

Я знаю, как это сделать с индексами, но, как я уже сказал, я не уверен в имени файла. Одно можно сказать наверняка, хотя я хочу извлечь оставшуюся часть строки. Пожалуйста, сообщите

ОБНОВЛЕНИЕ @gurvinder372

 //thumbNailUrlANDlargeImageUrl = "../uploads/191mapTool_thumb.png_tempLargeFileName=mapTool.png"

var largePictureURL = thumbNailUrlANDlargeImageUrl.split("_tempLargeFileName=")[1];
//largePictureURL = "mapTool.png"

var thumbnailURL = thumbNailUrlANDlargeImageUrl.split("_thumb."   "png")[0];
//thumbnailURL = "../uploads/191mapTool_thumb.png_tempLargeFileName=mapTool.png"
  

Комментарии:

1. Немного хрупко, но это должно сработать, учитывая ваш пример: var filename = laregPictureURL.split('=')[1];

2. И молитесь, чтобы имя файла не содержало «=» ^^

3. @SteevePitis точно 🙂

Ответ №1:

largePictureURL всегда будет содержать ‘_tempLargeFileName’ фактическое имя файла.

Это достаточно хорошая подсказка, чтобы попробовать это

 var fileName = largePictureURL.split( "_tempLargeFileName" )[1]
  

и если = также добавляется "_tempLargeFileName" после, измените то же самое на

 var fileName = largePictureURL.split( "_tempLargeFileName=" )[1]
  

Для получения всего перед использованием 0-го индекса

 var before = largePictureURL.split( "_tempLargeFileName=" )[0]
  

Комментарии:

1. да, большое спасибо, что сработало… что делать, если я хочу, чтобы все было до «_tempLargeFileName =» … я попробовал «_tempLargeFileName=» ) [-1], но это не сработало

2. @John это потому, что вы выполняете разделение по имени расширения файла, вы пробовали пример, которым я поделился?

3. понял. был дополнительный . in ..png спасибо за помощь G

Ответ №2:

Вы могли бы использовать подстроку индекса следующим образом:

 var fileName = largePictureURL.substring(largePictureURL.indexOf("_tempLargeFileName"));
  

Это даст вам все до конца строки, начиная с «_tempLargeFileName»