我有一个字符串(来自url中的路径名),我试图拉出它的一部分,但我遇到了麻烦。使用Javascript获取字符串的一部分
这是我到目前为止有:
^(/svc_2/pub/(.*?).php)
的字符串是:
/svc_2/pub/stats/dashboard.php?ajax=1
我怎样才能得到,只有返回/pub/stats/dashboard
一个正则表达式?
我有一个字符串(来自url中的路径名),我试图拉出它的一部分,但我遇到了麻烦。使用Javascript获取字符串的一部分
这是我到目前为止有:
^(/svc_2/pub/(.*?).php)
的字符串是:
/svc_2/pub/stats/dashboard.php?ajax=1
我怎样才能得到,只有返回/pub/stats/dashboard
一个正则表达式?
为此,使用正则表达式实在是太多了,但这里是:
var string = "/svc_2/pub/stats/dashboard.php?ajax=1";
console.log(string.replace(/.*(\/pub.*)\.php.*$/,"$1"));
但你可以做到这一点,没有一个正则表达式,像这样
console.log(string.substr(6,string.indexOf(".php")-6));
在这两种情况下, console.log会给你/pub/stats/dashboard
调整起始索引摆脱/ svc_2/ – 2013-07-30 22:10:14
@Jeffman ow我没有注意到那部分!谢谢! –
如果它总是这种格式(我假设/ svc_2 /总是存在),这应该做到这一点。
var s = "/svc_2/pub/stats/dashboard.php?ajax=1";
var match = s.match(/\/svc_2(.+)\./)[1];
但是,如果在此之前有任何问题,
这不是很灵活,但应该在这个特定的情况下工作。
var basedir = '/svc_2/', str = '/svc_2/pub/stats/dashboard.php?ajax=1';
str = str.substring(basedir.length, str.indexOf('.'));
alert(str);
为什么使用正则表达式?为什么不只是从'.'开始删除所有内容? –
您是否有充分的理由使用RegEx?看起来像一些indexOf调用会起作用。 RegEx很难读取和调试以进行简单的字符串操作。 –