2015-02-09 130 views
1

我有一个ID字符串被追加到当前页面URL的末尾,就像这样:正则表达式 - 好一切后,但不包括该字符

www.website.com?id=XXXXXXXXXXXX 

我想从一开始的Id URL的结束,所以我想只是

XXXXXXXXXXXX 

落得目前,我有这样的:

var the_url; 
var the_id; 

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

console.log(the_id); 

但是,这是G这就是我:

=XXXXXXXXXXXX 

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

Id本身由随机字母和数字组成,每次生成它时,使用它的任何部分都不是真正的选项。

+1

如果你确定url中只有一个变量,你不需要regexes:'the_id = the_url.split('=')[1];' – funkwurm 2015-02-09 14:03:31

+0

@funkwurm这是一个很好的解决方案,干杯! – Daft 2015-02-09 14:05:27

回答

7

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

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' 

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

+0

锚点'^'是否表示行首和否定? – 2015-02-09 15:51:36

+1

在字符类'[..]外部未转义的'^'代表一行的开始。字符类内部的'^'就像'[^ ...]'一样会做否定。但是如果'^'存在于除开始以外的char类中的任何其他地方,它将匹配文字符号'^'。 ex'[fo ^]','[f^o]' – 2015-02-09 15:55:14

+0

感谢您的澄清! – 2015-02-10 01:20:24

相关问题