javascript查找字符串并删除以下所有字符

javascript查找字符串并删除以下所有字符,javascript,Javascript,可能重复: 如果我有呢 var shot = www.site.com/ask 我想删除“/”(包括“/”)之后的所有字符。 因此,结果将是 www.site.com 注意:快照是动态更改值 这一切都将在javascript上完成。这里有一个正则表达式,它将删除第一个斜杠后的所有内容 var shot = 'www.site.com/ask'; shot.replace(/\/.+/, ''); 假设希望所有内容都位于/之前,则可以找到字符的索引并返回其前面的子字符串: var shot

可能重复:

如果我有呢

var shot = www.site.com/ask
我想删除“/”(包括“/”)之后的所有字符。 因此,结果将是

www.site.com
注意:快照是动态更改值
这一切都将在javascript上完成。

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

var shot = 'www.site.com/ask';
shot.replace(/\/.+/, '');

假设希望所有内容都位于
/
之前,则可以找到字符的索引并返回其前面的子字符串:

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"
var shot=“www.site.com/ask”;
var指数=shot.indexOf(“/”);
var结果;
如果(指数<0){
结果=射击;
}否则{
结果=shot.substr(0,索引);
}
//result=“www.site.com”
如果您希望从包含协议的字符串获取域,例如
http://www.site.com/ask
并获取
www.site.com
,则需要包含额外的逻辑,因为上面的代码将返回
http:

var shot = 'www.site.com/ask';
var site = shot.replace(/\/.*$/,'');
站点
现在将包含www.site.com

请尝试以下操作:

'www.site.com/ask'.split('/', 1)[0]; // => www.site.com
/^(.*?)\//.exec(shot)[1]
或:


您可以让浏览器为您进行解析:

var a = document.createElement("a");
a.href = "http://" + "www.site.com/ask";
alert(a.hostname);
//"www.site.com"

最简单的非regexp方法是

shot = shot.substr(0, shot.indexOf('/'));
但这并不能解释是否存在
http://
或类似内容。为此,您确实需要一个regexp

shot = shot.replace(/([^\/])\/([^\/].*)?$/, '$1');

请把你到现在为止试过的东西贴出来。你们也搜索过你们的问题的答案吗?你们当前的网址是?如果是这样,您可以使用
window.location.host
。可能的重复,如果没有“/”,我们称之为“意外结果”。非常感谢@Smirkin Gherkin它工作得很好:)@Bergi,好地方。包括额外的逻辑,以确保有一个斜杠。8行代码,语法错误,代码重复和错误的结果?真的吗?我不明白。如果(索引>=0)(不是
正则表达式也不起作用,那么应该是
。至少,我认为这个意图是为了
”http://www.site.com/ask“
结束”http://www.site.com“
但替换返回的是
”http:
。两个都有打字错误……第一个我错过了第一个参数,第二个也被修复了。
shot = shot.replace(/([^\/])\/([^\/].*)?$/, '$1');