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。要了解有关它的更多信息,这里是许多不错的教程之一。

于 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字符串末尾的 regex:

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"

或者在一行中:

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 回答