提取字符串并将其存储为变量

时间:2014-04-10 21:45:31

标签: javascript jquery regex

如何提取字符串并将其存储为变量?我有这个网址:

http://sub.site.com/WordsHere-t.jpg

我希望能够抓住WordsHere。它可以是任何长度,但不一定是9个字符。检测/之后和-之前的字词的最佳方法是什么?

var url = "http://sub.site.com/WordsHere-t.jpg";
var getWords = insertRegexHere(url);
document.write(getWords);

这应该返回字符串" WordsHere"

4 个答案:

答案 0 :(得分:4)

这会有用......

var url = "http://sub.site.com/WordsHere-t.jpg";
var getWords = url.match(/.*\/(.*)-/)[1];

正则表达式像这样崩溃......

  • .*\/查找最后一个单斜杠
  • (.*)-捕捉到破折号的所有内容

这是一个小提琴:FIDDLE DEMO

显示正则表达式的工作原理:RUBULAR DEMO

编辑 - 好消息是它也适用于这样的网址,如

http://sub.site.com/sub1/sub2/WordsHere-t.jpg

Edit2 - 我缩短了RegEx ...我认为每个人都在过度思考这个......我没有必要在开始时测试双斜线。只找到最后一个斜线。

答案 1 :(得分:1)

如果你不想使用正则表达式,这是另一种方式,有点愚蠢:

var getWords = url.substring(url.lastIndexOf('/')+1, url.lastIndexOf('-'));

这将为您提供最后一个和最后一个之间的所有内容,但它取决于网址结构。如果它总是像你展示的那样,那么你应该没问题,否则正则表达式可能是其他人建议的更好的解决方案。

答案 2 :(得分:0)

试试这个:小提琴 - http://jsfiddle.net/Anee/Vtm77/

var path = window.location.pathname; // Get's the path after host url
var arrypath = path.split("-"); // Split's your substring using "-",
console.log(arrypath[0]); // Your expected string

答案 3 :(得分:0)

你想要的正则表达式可能是" ^ [^ /] // [^ /] /([^ - 。] *) - "并且第一次捕获将是你想要的单词。

相关问题