0

可能重复:
删除某个字符后的所有内容

如果我有

var shot = www.site.com/ask

我想删除“/”之后的所有字符(包括“/”)。所以结果将是

www.site.com

注意:shot 是动态变化的值,这一切都将在 javascript 上完成。

4

7 回答 7

2
'www.site.com/ask'.split('/', 1)[0]; // => www.site.com
于 2012-07-26T11:35:54.780 回答
1

假设您想要之前的所有内容,/您可以找到字符的索引并返回它之前的子字符串:

var shot = "www.site.com/ask";
var index = shot.indexOf("/");
var result;
if (index < 0) {
    result = shot;
} else {
    result = shot.substr(0, index);
}
// result = "www.site.com"

如果您想从包含协议的字符串中获取域,例如http://www.site.com/ask并获取,www.site.com那么您需要包含额外的逻辑,因为上面的代码将返回http:

于 2012-07-26T11:35:35.473 回答
1
var shot = 'www.site.com/ask';
var site = shot.replace(/\/.*$/,'');

site现在将包含 www.site.com

于 2012-07-26T11:35:46.340 回答
1

试试这个:

/^(.*?)\//.exec(shot)[1]

或者:

shot.match(/^[^\/]*/)[0]
于 2012-07-26T11:36:27.837 回答
1

你可以让浏览器为你做解析:

var a = document.createElement("a");
a.href = "http://" + "www.site.com/ask";
alert(a.hostname);
//"www.site.com"
于 2012-07-26T11:39:50.380 回答
1

最简单的非正则表达式方法是

shot = shot.substr(0, shot.indexOf('/'));

但这并不能说明存在http://或类似的情况。为此,您确实需要一个正则表达式。

shot = shot.replace(/([^\/])\/([^\/].*)?$/, '$1');
于 2012-07-26T11:42:29.430 回答
0

这是一个正则表达式,它将删除第一个斜杠之后的所有内容

var shot = 'www.site.com/ask';
shot.replace(/\/.+/, '');
于 2012-07-26T11:35:16.730 回答