如何使用正则表达式从字符串中删除[a-z] / [a-z] /?

时间:2010-05-31 16:32:26

标签: javascript regex

说一个字符串是abc/xyz/IMPORTANT/DATA/@#!%@!%,我只想要IMPORTANT/DATA/!%#@%!#%

我在正则表达式上很糟糕,并且还没有学过JavaScript API

3 个答案:

答案 0 :(得分:2)

使用indexOfsubstring。你不需要正则表达式。

您可以使用start参数indexOf从给定位置进行搜索。如果您在第一个/之后进行搜索,则可以找到第二个/的索引。

s = "abc/def/ghi/jkl";
s = s.substring(s.indexOf('/', s.indexOf('/') + 1) + 1);
document.writeln(s); // "ghi/jkl"

请注意,这假设始终至少有两个/。如果没有,这将保持原样s

s = "abc/xyz";
s = s.substring(s.indexOf('/', s.indexOf('/') + 1) + 1);
document.writeln(s); // "abc/xyz"

如果你想使用正则表达式,它就是这样的:

s = "abc/def/ghi/jkl";
s = s.replace(/[a-z]+\/[a-z]+\//, '');
document.writeln(s); // "ghi/jkl"

同样,这假设总是至少有两个/

答案 1 :(得分:1)

如果文字总是与您当前的示例一样,您可以简单地使用substringindexOf从第二次出现的“/”开始剪切它。

否则/([^\/]+\/[^\/]+\/)/或布莱尔的回答可能是一个很好的正则表达式。 或/^([^\/]+\/[^\/]+\/)/如果必须从字符串的开头开始。

答案 2 :(得分:1)

我认为

yourstring.replace(/[a-z]+\/[a-z]+\/(.+)/g, "$1");