Javascript 需要从此字符串中删除一个前导字符(#或+;)

Javascript 需要从此字符串中删除一个前导字符(#或+;),javascript,Javascript,在下面的例子中,我需要去掉vars b&c的第一个“#”或“+”字符,这样它们就可以变成vars a&a1,它在别处构建的新url中用作字符串 代码如下: var b = "http://www.somewhere.com/search/#foo+bar+baz" var c = "http://www.somewhere.com/search/++bar+baz" var a = b.split("/")[4].split("+").slice(0, 1); var a1 = c.spli

在下面的例子中,我需要去掉vars b&c的第一个“#”或“+”字符,这样它们就可以变成vars a&a1,它在别处构建的新url中用作字符串

代码如下:

var b = "http://www.somewhere.com/search/#foo+bar+baz"

var c = "http://www.somewhere.com/search/++bar+baz"

var a = b.split("/")[4].split("+").slice(0, 1);
var a1 = c.split("/")[4].split("+").slice(0, 1);

更新

您可以很容易地使用正则表达式替换第一次出现的字符:

var a = b.replace(/[#+]/,'');
var a1 = c.replace(/[#+]/,'');

如果没有
g
修饰符,它只会替换它找到的第一个修饰符。

这对我在你的小提琴上很有用

var b = "http://www.somewhere.com/search/#foo+bar+baz"

var c = "http://www.somewhere.com/search/++bar+baz"

var a = b.split("/")[4].split("+").slice(0, 1);
if(a[0].indexOf('#') != -1){a = a[0].split('#')[1]}
var a1 = c.split("/")[4].split("+");
var i=0;
while(true){
    if(a1[i] != ''){a1 = a1[i]; break;}
    i++;
}
$("#result").html(a);
$("#result2").html(a1);

console.log(a);
console.log(a1);

或者,如果需要避免在最后一个斜杠之前更改引用,
var a=b.substring(0,b.lastIndexOf('/'))+'/'+b.substring(b.lastIndexOf('/'))+1)。替换(/[#+]/,'')@马克谢谢。我之前尝试过替换,但它抛出了一个错误,因为它是一个对象。应该在问题中注意到这一点。你的例子似乎跳过了我需要的一步。@马克,我想我现在更了解你的例子了。我需要先剥离角色,然后获取切片@马克:哎哟。刚才注意到
#
实际上是
%23
。@user1452893:这要看情况而定。我仍然不太确定你想要什么样的输出。是“foo+bar+baz”和“+bar+baz”还是什么?用斜杠把它劈开,然后拿第四块看起来很脆弱。你想要最后一段吗?最后一段是否总是以恰好1个不需要的字符开始?那炭是从哪里来的?谢谢!这对我也适用。我的示例显示了两个使用两个变量的情况,但实际上只有变量b可以在
搜索
位之后具有
#foo+bar+baz
++bar+baz
。既然示例中存在
a1
,但实际中没有,那么我如何进行整合呢。希望这是有道理的。你知道+或#是第一位,还是二者都可以?哎哟。刚才注意到
#
实际上是
%23
,在实践中是的,这很有效。前面这些字符的多次出现可能是一个问题