3

文字列' http://this.is.my.url:007/directory1/directory2/index.html 'があり、次のように文字列を抽出する必要があります。最善の方法をアドバイスしてください

var one = http://this.is.my.url:007/directory1/directory2/index

4

5 に答える 5

7

これを試して:

var url = 'http://this.is.my.url:007/directory1/directory2/index.html';
url.replace(/\.[^.]*$/g, ''); // would replace all file extensions at the end.

// or in case you only want to remove .html, do this:
var url = 'http://this.is.my.url:007/directory1/directory2/index.html';
url.replace(/\.html$/g, '');

正規表現に含まれる場合の$文字は、テキスト文字列の末尾に一致します。バリアントaでは、「。」から始めます。この文字から文字列の終わりまですべてを削除します。バリアント2では、これを正確な文字列「.html」に減らします。これは、JavaScriptよりも正規表現に関するものです。それについてもっと学ぶために、ここに多くの素晴らしいチュートリアルの1つがあります。

于 2013-02-10T12:19:44.943 に答える
3

あなたはただ使う必要がありますreplace()

var url = 'http://this.is.my.url:007/directory1/directory2/index.html';
var one = url.replace('.html', '');

文字列の末尾からのみを削除するようにしたい場合.htmlは、正規表現を使用します。

var url = 'http://this.is.my.url:007/directory1/directory2/index.html';
var one = url.replace(/\.html$/', '');

$、文字列の最後の文字のみをチェックする必要があることを示します。

于 2013-02-10T12:16:38.050 に答える
3
var url = 'http://this.is.my.url:007/directory1/directory2/index.html';
var trimmedUrl = url.replace('.html', '');
于 2013-02-10T12:16:53.057 に答える
2

slice最後のドットまで文字列を取得できます。

var url = 'http://this.is.my.url:7/directory1/directory2/index.html';
url = url.slice(0,url.lastIndexOf('.')); 
  //=> "http://this.is.my.url:7/directory1/directory2/index"

または1行で:

var url = ''.slice.call(
           url='http://this.is.my.url:7/directory1/directory2/index.html',
           0,url.lastIndexOf('.')  );
于 2013-02-10T12:22:55.037 に答える
2

正規表現を使用して、すべて ( .*) をキャプチャ グループのそれ自体に置き換えます (末尾の は含みません.html)。

var url = 'http://this.is.my.url:007/directory1/directory2/index.html';
var one = url.replace(/(.*)\.html/, '$1');
                       ^  ^          ^^
// Capture group ______|  |__________||
//                    Capture ---->  Get captured content
于 2013-02-10T12:28:22.937 に答える