jQuery删除#后面的字符串以及删除#本身

11

我想知道如何移除字符串中"#"符号后面的所有部分。 比如如果我有一个字符串example.com/hello#item1,我该如何移除#及其后面的所有字符?


你有三种完全不同的方法可以做到这一点...随便挑选吧。 - Billy Moon
当然,这些都不涉及jQuery。 - Frédéric Hamidi
好的,知道了。只需要涉及JavaScript吗? - krzyhub
@Cris,确实。除非您想要裁剪字符串,否则不需要jQuery来操作字符串,而即使这样也可以使用简单的正则表达式完成。 - Frédéric Hamidi
正则表达式在大多数语言中是相同的吗? - krzyhub
@Cris 正则表达式在不同的编程语言中并不相同,但是JavaScript正则表达式是标准的,并且可以在支持JavaScript的所有浏览器中使用。 - Joseph Marikle
6个回答

49
var string = "example.com/hello#item1".split('#')[0];

就是这么简单


请注意,当未找到#时,字符串将未定义。在这种情况下,您可能认为它应该返回整个字符串。 - JochenJung
它将始终返回整个字符串。 - Senad Meškin

4
你可以只使用split函数。
var oldString ='somestring#removethis';
var newString = oldString.split('#', 1)[0];
alert(newString);

see: http://jsfiddle.net/DGFuf/1/


3
var str = "example.com/hello#item1";
str = str.replace(/#.*$/,'');

也许我做错了什么,但这段代码会剪切除域名以外的所有内容。 - krzyhub
如果您这么说的话,那肯定是我的错了。 - krzyhub

2

试试这个:

var str = "example.com/hello#item1";

    var newStr = str.substring(0, (str.length - str.indexOf("#")));

这是代码高尔夫的反义词吗?那会被称为什么呢?代码鞭打? - Billy Moon

2

你也可以使用以下方法:

var str = "example.com/hello#item1".split('#')[0];

1
location.href.replace(location.hash,"")

搞定了

编辑

哎呀...字符串...嗯...这就是如何从URL中删除它 XDDD


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接