可能重复:
删除某个字符后的所有内容
如果我有
var shot = www.site.com/ask
我想删除“/”之后的所有字符(包括“/”)。所以结果将是
www.site.com
注意:shot 是动态变化的值,这一切都将在 javascript 上完成。
可能重复:
删除某个字符后的所有内容
如果我有
var shot = www.site.com/ask
我想删除“/”之后的所有字符(包括“/”)。所以结果将是
www.site.com
注意:shot 是动态变化的值,这一切都将在 javascript 上完成。
'www.site.com/ask'.split('/', 1)[0]; // => www.site.com
假设您想要之前的所有内容,/
您可以找到字符的索引并返回它之前的子字符串:
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:
。
var shot = 'www.site.com/ask';
var site = shot.replace(/\/.*$/,'');
site
现在将包含 www.site.com
试试这个:
/^(.*?)\//.exec(shot)[1]
或者:
shot.match(/^[^\/]*/)[0]
你可以让浏览器为你做解析:
var a = document.createElement("a");
a.href = "http://" + "www.site.com/ask";
alert(a.hostname);
//"www.site.com"
最简单的非正则表达式方法是
shot = shot.substr(0, shot.indexOf('/'));
但这并不能说明存在http://
或类似的情况。为此,您确实需要一个正则表达式。
shot = shot.replace(/([^\/])\/([^\/].*)?$/, '$1');
这是一个正则表达式,它将删除第一个斜杠之后的所有内容
var shot = 'www.site.com/ask';
shot.replace(/\/.+/, '');