2011-06-01 65 views
3

我有一個獨特的挑戰。違反RegExp:每個小於或等於「001700」的字符串

我想創建一個自定義變量的谷歌分析過濾器,只有給定字符串小於或等於'001700'時纔會返回一個值。是的,我知道一個字符串不能小,我仍然需要找到一種方法來完成這項工作。

哦,如果你問:沒有沒有辦法將該字符串轉換爲數字(根據我的知識 - 通過谷歌分析過濾器 - 這是我必須在這種情況下工作)。

所以基本上,我有

000000 
000001 
000002 
000003 
... 
... 
999998 
999999 

,我需要匹配

001700 
001699 
001698 
... 
... 
000001 
000000 

,但確實比賽

001701 
001702 
... 
... 
999998 
999999 

子問題上)是一個正則表達式有可能嗎?(據我所知,如果你很聰明和/或自虐足夠,一切皆有可能)

子問題b)怎麼辦?

THX非常

回答

4

你可以這樣做:

^00(1700|1[0-6][0-9]{2}|0[0-9]{3})$ 

See it

1

可以用正則表達式來完成:

/00(1([0-6][0-9]{2}|700)|0[0-9]{3})/ 

說明:其次

  • 1後面跟着0到6

    00和任意2號= 1000 - 1699

  • 0後跟任意3個數字= 0000 - 0999
1

是的,你可以做

see this article

如:

alert('your numericle string'.replace(/\d+/g, function(match) { 
    return parseInt(match,10) <= 17000 ? '*' : match; 
})); 

JavaScript調用我們的功能,通過 比賽進入我們的比賽的說法。 然後,我們返回星號 (如果匹配的數字在17000以下)或 匹配本身(即不匹配應發生 )。