正则表达式 - 获取此字符之后的所有内容,但不包括此字符

时间:2015-02-09 13:49:35

标签: javascript regex

我有一个Id字符串,它附加到当前页面URL的末尾,如下所示:

www.website.com?id=XXXXXXXXXXXX

我想从URL的末尾获取Id,所以我想最终只有

XXXXXXXXXXXX

目前我有这个:

var the_url;
var the_id;

the_id = the_url.replace(/^[^=]+/,"");

console.log(the_id);

但那就是给我这个:

=XXXXXXXXXXXX

如何获得等号后的所有内容,但不包括等号?

每次生成时,ID本身都是由随机字母和数字组成的,所以使用它的任何部分作为参考并不是真正的选择。

1 个答案:

答案 0 :(得分:8)

只需在否定字符类旁边添加=符号即可。所以只有=也被删除了。

the_url.replace(/^[^=]+=/,"");

OR

> var s = "www.website.com?id=XXXXXXXXXXXX";
undefined
> s.match(/[^=]+$/)
[ 'XXXXXXXXXXXX',
  index: 19,
  input: 'www.website.com?id=XXXXXXXXXXXX' ]
> s.match(/[^=]+$/)[0]
'XXXXXXXXXXXX'

[^=]+匹配任何字符但不匹配=符号一次或多次。 $个锚点指的是一行的结尾。