在javascript中从字符串中查找特殊文本

时间:2011-04-06 06:09:27

标签: javascript regex

我有#ls/?folder_path=home/videos/

之类的字符串

我如何从字符串中找到最后一个文本?这个地方是视频

其他字符串,如

  • #ls/?folder_path=home/videos/
  • #ls/?folder_path=home/videos/test/testt/
  • #ls/?folder_path=seff/test/home/videos/

7 个答案:

答案 0 :(得分:3)

我们可以使用更多示例字符串,但基于您的唯一示例,这是一个粗略的正则表达式,可以帮助您入门:

.*?/\?.*?/(.*?)\//

编辑:

基于您的扩展示例:

.*?/\?.*/(.*?)\//

此正则表达式将使用文本直到倒数第二个/并捕获直到字符串中的最后一个/

答案 1 :(得分:1)

有很多方法可以做到这一点。其中之一:

var str = '#ls/?folder_path=home/videos/'.replace(/\/$/,'');
alert(str.substr(str.lastIndexOf('/')+1)); //=> videos

不使用replace

的备选方案
var str = '#ls/?folder_path=home/videos/'
   ,str = str.substr(0,str.length-1)
   ,str = str.substr(str.lastIndexOf('/')+1);
alert(str); //=> videos

答案 2 :(得分:1)

即使字符串没有以/结尾也是如此     var str;

var re = /\w+(?=\/?$)/;

str = "#ls/?folder_path=home/videos/"
str.match(re) ; //# => videos

str = "#ls/?folder_path=home/videos/test/testt/"
str.match(re) ; //# => testt

str = "#ls/?folder_path=seff/test/home/videos/"
str.match(re) ; //# => videos


str = "#ls/?folder_path=home/videos/test/testt"
str.match(re) ; //# => testt

答案 3 :(得分:1)

\/([^\/]*)\/?$

此正则表达式将匹配最后两个/之间的所有非/。最后/是可选的。 $匹配字符串的结尾。

您的结果字符串将出现在第一个捕获组中(因为()$1

您可以对其进行测试here

答案 4 :(得分:0)

如果它始终以/结尾,那么这将有效。

var str = '#ls/?folder_path=home/videos/';
var arr = str.split('/');
var index = arr.length-2;
console.log(arr[index]);

答案 5 :(得分:0)

如果您的数据与此字符串一致,则这是一种基于拆分的简单检索方式 您需要的字符串:http://jsfiddle.net/EEkLP/

var str="#ls/?folder_path=home/videos/";
var strArr = str.split("/");
alert(strArr[strArr.length-2]);

答案 6 :(得分:0)

如果最后一个单词总是用正斜杠括起来,那么你可以尝试这个 -

".+\/([^\/]+)\/$"

或正则表达式

/.+\/([^\/]+)\/$/