0

我想抓取“/”之前的第一组字符,但之前和之后的值都继续显示。我该怎么做?

var str="http://www.youtube.com/fdgfdgfdghgfh";
var fileName_image = str;
var n = fileName_image.substring(fileName_image.lastIndexOf('http://') + 7);
var f = n.substring(n.charAt('/'));

我得到的是:www.youtube.com/fdgfdgfdghgfh

我想得到的是 www.youtube.com

4

5 回答 5

3

虽然您可以在没有正则表达式的情况下执行此操作,但这将是很多缓慢且令人困惑的代码。这种字符串处理正是正则表达式存在的原因。所以使用它们。

// input string
var str = "http://www.youtube.com/fdgfdgfdghgfh";

// matching regex
//   note that forward slashes must be escaped
//   capture text between "http://" (http:\/\/) and the next "/" (\/)
//   use [1] index to retrieve the first captured string (.+?)
var result = str.match(/^http:\/\/(.+?)\//)[1];

// log result
console.log(result); // "www.youtube.com"
于 2012-08-16T20:26:06.053 回答
0

所以你想返回 www.youtube.com?像这样-> http://jsfiddle.net/HqSev ???

于 2012-08-16T20:24:55.203 回答
0
var str = "http://www.youtube.com/fdgfdgfdghgfh"; 
var start = "http://".length;
// Grabs everything after http:// up until the next slash
str.substring(start, str.indexOf("/", start));

我喜欢@AlexWayne 的方法,可能会使用它。但是,这个答案会告诉你你哪里出错了。

于 2012-08-16T20:25:11.170 回答
0

如果您正在寻找字符串“fdgfdgfdghgfh”,您可以将最后一行替换为:

var f = n.substring(n.lastIndexOf('/') + 1);

于 2012-08-16T20:25:47.910 回答
0

改变

var f = n.substring(n.charAt('/')); 

var f = n.split('/')[1]; 

将 [1] 更改为 [0] 以获取斜线之前的内容

在 / 之前获取东西的替代方法是

var f = n.substring(0,n.indexOf('/')); 
于 2012-08-16T20:27:28.510 回答