2010-09-22 98 views

回答

3

假設你總是有兩個數字,用這個:

var item = "item24"; 
var result = item.match(/(\d)(\d)$/); 
var digit1 = result[1]; 
var digit2 = result[2]; 
+0

感謝這個完美的作品。 – Shouvik 2010-09-22 08:41:52

1

如果你需要的是最後幾位數字則:

\d+$ 

將做的工作。 \d+表示1位或更多位數,而$表示「結束」。然後你可以使用result_string[0]result_string[1](當然,你應該檢查長度):

var txt = "item25"; 
var result = txt.match(/\d+$/); 
if (result != null) 
    { 
    var digits = result[0]; 
    alert(digits[0]); 
    alert(digits[1]); 
    } 

您還可以使用正則表達式組,如:

(\d)(\d)$ 
1

你想爲Extrac「23」給一個變量?

你在這裏:

/^item([0-9]+)$/ 

將提取itemXXXXXX返回該號碼的任何數字。

+0

是的,我會被提取到變量,然後將其串連到另一個字符串 – Shouvik 2010-09-22 08:28:11

3

你不需要用這個問題來打擾正則表達式解析器。如果字符串到數字的第一部分始終是相同的長度,你可以使用slice()substring()

var str = "item23"; 

alert(str.slice(4)); 
//-> 23 

這將是比正則表達式更快,更復雜。如果您需要分開的數字,你可以將它們分割:

var arr = str.slice(4).split(); 
//-> ["2", "3"] 
+0

謝謝我不知道這種方法。將嘗試一段時間... :) – Shouvik 2010-09-22 08:42:42

+0

@Shouvik:根據我的經驗,如果有更合適的方法可用,最好避免使用正則表達式。我已經更新了我的答案,其中包含一個解決方案,可以提供與您接受的答案相同的結果。 – 2010-09-22 08:45:18

+0

假設文本總是4個字符長。 – 2010-09-22 08:51:10