说一个字符串是abc/xyz/IMPORTANT/DATA/@#!%@!%
,我只想要IMPORTANT/DATA/!%#@%!#%
我在正则表达式上很糟糕,并且还没有学过JavaScript API
答案 0 :(得分:2)
使用indexOf
和substring
。你不需要正则表达式。
您可以使用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)
如果文字总是与您当前的示例一样,您可以简单地使用substring
和indexOf
从第二次出现的“/”开始剪切它。
否则/([^\/]+\/[^\/]+\/)/
或布莱尔的回答可能是一个很好的正则表达式。
或/^([^\/]+\/[^\/]+\/)/
如果必须从字符串的开头开始。
答案 2 :(得分:1)
我认为
yourstring.replace(/[a-z]+\/[a-z]+\/(.+)/g, "$1");