2010-11-03 46 views
1

字符串如何將最後一個數字解析與jQuery或Javascript

http://something.com:9090/general/35/30/205 
http://something.com:9090/general/3/55/27 
http://something.com:9090/general/36/30/277 
+0

http://www.w3schools.com/jsref/jsref_obj_regexp.asp – Stephen 2010-11-03 17:55:10

回答

2

您需要使用正則表達式在此之前拉出30或55基本數量。作爲一個簡單的例子,在這裏你需要做到以下幾點:

var url = "http://something.com:9090/general/35/30/205"; 
var category = url.match(/(\d+)\/\d+$/)[1]; 

爲了解析正則表達式:

  • /啓動正則表達式
  • (\d+)創建要找到一組以後的價值。此組必須包含1個或更多數字字符
  • \/接下來必須出現正斜槓。反斜槓「轉義」斜槓 - 否則將結束正則表達式
  • \d+下一個必須1個或多個數字字符
  • $走到這必須是字符串
  • /結束正則表達式的結束。

match函數返回我們選擇項目的數組 - 在這裏,只是(\d+)[1]表示「獲得第一個匹配」,在上面的字符串中將爲30

+0

啊,是的,在T恤正統化妝前的ol't恤 – zincorp 2010-11-03 18:08:21

+0

@zincorp我想我錯過了一些東西。 – lonesomeday 2010-11-03 18:09:11

+0

如果你有問題,並且你決定用正則表達式解決這個問題,你現在有兩個問題 – 2010-11-03 18:26:53

1
var s = "http://something.com:9090/general/35/30/205"; 
s.substr(s.lastIndexOf('/') - 2,2); 
+0

只要號碼精確到兩位數字,它就會工作。 '/ 3/205'和'/ 300/205'都會給出錯誤的結果。 – lonesomeday 2010-11-03 18:06:30

+0

@lonesomeday是的,你是對的!你的答案應該能夠做到這一點。祝你今天愉快 ! – 2010-11-03 18:08:37

2
var url = "http://something.com:9090/general/35/30/205"; 
var splits = url.split('/'); 
return splits[splits.length - 2]; 

如果您的網址看起來像這將搞砸了: 「http://something.com:9090/general/35/30/205/」 但你總是剪掉尾隨事先斜槓。

+0

+1不使用正則表達式:-) – micmcg 2010-11-04 01:03:07

0
var parts = url.split('/'); 

var i = parts.length, num; 
while (--i) 
    if (!isNaN(parts[i]) && !isNaN(parts[i+1])) { 
    num = parts[i]; 
    break; 
    } 

沒有正則表達式,而有點像邁克Ruhlin的解決方案,但你的問題的一部分「的最後一個數字之前數字」更具體的。