2010-09-22 94 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