可能重复:
Remove everything after a certain character的JavaScript找到字符串,删除以下所有字符
如果我有
var shot = www.site.com/ask
,我想以后删除所有字符“ /“ (包含 ”/”)。 这样的结果将是
www.site.com
注:拍摄动态变化值 ,这将所有的JavaScript来完成。
可能重复:
Remove everything after a certain character的JavaScript找到字符串,删除以下所有字符
如果我有
var shot = www.site.com/ask
,我想以后删除所有字符“ /“ (包含 ”/”)。 这样的结果将是
www.site.com
注:拍摄动态变化值 ,这将所有的JavaScript来完成。
假设你想要的/
之前,你可以找到一个字符的索引,并返回之前的子一切后,将删除一切:
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';
shot.replace(/\/.+/, '');
var shot = 'www.site.com/ask';
var site = shot.replace(/\/.*$/,'');
site
现在将包含www.site.com
'www.site.com/ask'.split('/', 1)[0]; // => 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"
有趣的方法 – 2012-07-26 11:40:27
最简单的非正则表达式的方法是
shot = shot.substr(0, shot.indexOf('/'));
但这并不占存在介于http://
或相似。为此,你需要一个正则表达式。
shot = shot.replace(/([^\/])\/([^\/].*)?$/, '$1');
正则表达式也不起作用。至少,我认为这个意图是为了“http://www.site.com/ask”最终成为'“http://www.site.com”',但是替换返回'“http:” '。 – nnnnnn 2012-07-26 12:05:38
两人都有错别字......第一个错过了第一个参数,第二个错误现在也被修正了。 – 2012-07-26 12:22:42
请发表您曾尝试过的至今。你有没有搜索过你的问题的答案? – 2012-07-26 11:35:59
[你有什么试过](http://whathaveyoutried.com)? – Bergi 2012-07-26 11:38:36
正在拍摄你当前的网址?如果是这样,你可以使用'window.location.host'。 – 2012-07-26 11:39:27