如何提取字符串并将其存储为变量?我有这个网址:
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"
答案 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)
你想要的正则表达式可能是" ^ [^ /] // [^ /] /([^ - 。] *) - "并且第一次捕获将是你想要的单词。