2015-02-09 77 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

相關問題