0

您好,我是 javascript 新手,我需要一些关于 regex/replace 的帮助

我想以一个 url 为例(url case 1)

http://url.com/_t_lastUpdate_2670619?location=50457347

或(网址案例 2)

http://url.com/_t_2670619

我想在这种情况下选择只是

_t_2680619

忽略“?”之后的所有内容 和之前(下划线)t(下划线)

正则表达式/替换有可能吗?我唯一能做的就是只选择数字

var _t__and_number = document.URL.replace(/[^\d]/g, '');
alert(_t__and_number);

但是如果有像 url case 1 这样的东西,那并不能解决我的问题

(如果即使没有(下划线)t(下划线)我也能得到第一个数字,那已经对我有很大帮助了。谢谢

解决方案:

onetrickpony /michaelb958:

var _t__and_number = window.location.pathname;
alert(_t__and_number);

埃尔马加纳:

var _t__and_number = document.URL.replace(/\?.*/g, '').match(/.*\/(.*)/)[1];
alert(_t__and_number);
4

3 回答 3

0

第一部分如案例(1)和(2)

    var s = '//url.com/_t_522121?location=50457347';
    var n = s.lastIndexOf('/');
    var result = s.substring(n + 1);
    alert(result);

    n = result.indexOf('?');
    result = result.substring(0, n);
    alert(result);
于 2013-08-13T00:48:28.300 回答
0

正如onetrickpony所建议的,如果这是您当前正在浏览的 URL,window.location.pathname将产生 URL 的那部分。

于 2013-08-13T00:53:04.507 回答
0

如果您试图在最后一个 / 之后和 ? 之前提取值 你可以试试这样的

url.replace(/\?.*/g, '').match(/.*\/.*(_t_.*)/)[1]

替换从 ? 并且向前,匹配创建一组在最后一个正斜杠之后找到的值,然后由索引1访问

希望这可以帮助。

这是显示它有效的 jsfiddle: 我的 JsFiddle

于 2013-08-13T00:53:20.767 回答