从变量中提取元素

时间:2013-02-10 12:13:55

标签: javascript jquery

我有一个字符串'http://this.is.my.url:007/directory1/directory2/index.html',我需要提取字符串,如下所示。请建议最好的方式

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

5 个答案:

答案 0 :(得分: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。要了解有关它的更多信息,请参阅以下许多不错的tutorials

答案 1 :(得分: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$/', '');

$表示只应检查字符串的最后一个字符。

答案 2 :(得分:3)

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

答案 3 :(得分: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('.')  );

答案 4 :(得分: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