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

正規表現なしでこれを行うことはできますが、非常に遅く、混乱を招くコードになります。この種の文字列処理は、まさに正規表現が存在する理由です。したがって、'emを使用します。

// 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
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 に答える
0

www.youtube.com を返しますか? このように-> http://jsfiddle.net/HqSev ???

于 2012-08-16T20:24:55.203 に答える