Как минимум три способа:
Регулярное выражение:
var result = /[^/]*$/.exec("foo/bar/test.html")[0];
... который говорит «захватить серию символов, не содержащую косой черты» ( [^/]*
) в конце строки ( $
). Затем он извлекает совпадающие символы из возвращенного объекта соответствия, индексируя его ( [0]
); в объекте соответствия первая запись - это вся соответствующая строка. Нет необходимости в группах захвата.
Живой пример
Использование lastIndexOf
и substring
:
var str = "foo/bar/test.html";
var n = str.lastIndexOf('/');
var result = str.substring(n + 1);
lastIndexOf
делает то, что звучит так: находит индекс последнего вхождения символа (ну, строки) в строку, возвращая -1, если не найден. В девяти случаях из десяти вы, вероятно, захотите проверить это возвращаемое значение ( if (n !== -1)
), но в приведенном выше примере, поскольку мы добавляем к нему 1 и вызываем подстроку, в конечном итоге мы str.substring(0)
просто возвращаем строку.
С помощью Array#split
Судхир и Том Уолтерс рассмотрели это здесь и здесь , но только для полноты:
var parts = "foo/bar/test.html".split("/");
var result = parts[parts.length - 1]; // Or parts.pop();
split
разбивает строку, используя заданный разделитель, возвращая массив.
lastIndexOf
/ substring
Решение , вероятно , является наиболее эффективным (хотя один всегда должен быть осторожным сказать что - нибудь о JavaScript и производительности, так как двигатели меняются так радикально друг от друга), но если вы делаете это тысячи раз в цикле, это Безразлично Это не имеет значения, и я буду стремиться к ясности кода.
Вам не нужен jQuery, и есть несколько способов сделать это, например:
Где myString содержит вашу строку.
источник
источник
Пытаться;
источник
Когда я знаю, что строка будет достаточно короткой, я использую следующий лайнер ... (не забудьте избегать обратных косых черт)
всплывает предупреждение с
picture name.jpg
источник
Теперь у вас есть last.htm в строке пути.
источник
легкий вес
где
start = Required
. Положение, с которого начать добычу. Первый символ имеет индекс 0`.end = Optional
. Положение (до, но не включая), где закончить извлечение. Если опущено, извлекается остальная часть строки.ИЛИ
источник
JQuery:
Javascript:
Заменить "_" || '/' для ваших нужд
источник
и на вопрос, заданный по URL-адресу (задан один раз '=') ::
[ http://stackoverflow.com/questions/24156535/how-to-split-a-string-after-a-particular-character-in -jquery] [1]
источник
Попробуй это:
источник