1

我有这个字符串:

http://localhost:8080/Test/index.html?node=station:|slot:/gooberVille/Neverland/Hola#/overview/standard

我想删除'?'的第一个实例之间的所有内容 和“?”之后的第一个“#”实例。

我考虑了 slice() 一段时间,但我认为这不会削减它。太小气了。

谢谢!

4

2 回答 2

5

使用正则表达式:

var s = 'http://localhost:8080/Test/index.html?node=station:|slot:/gooberVille/Neverland/Hola#/overview/standard';
s = s.replace(/\?.*?#/, '');

?是正则表达式中的特殊字符,因此要匹配文字?,请使用反斜杠对其进行转义。 .匹配任意字符,.*匹配任意数量的任意字符(尽可能多),.*?匹配任意数量的任意字符(尽可能少)。所以/\?.*?#/将从第一个开始匹配?,然后尽可能少的字符,直到#找到 a。通过用空字符串替换此正则表达式的匹配项,您可以获得所需的结果。

如果要保留#字符串中的 ,只需将其更改为s.replace(/\?.*?#/, '#').

于 2013-08-13T23:43:51.047 回答
2

正则表达式是你最好的选择

string = string.replace(/\?.*?#/, '');
于 2013-08-13T23:45:22.150 回答