2010-03-14 46 views
1

我是新来使用正则表达式,有人可以给我的正则表达式,将除去一个整数从字符串在JavaScript中的一切吗?什么是一个很好的RegExp,它将从字符串中除掉整数除外的所有字符?

我想将字符串“http://www.foo.com/something/1234/somethingelse”作为整数取到1234。

感谢

+1

数字或整型?两件不同的事情......如果你被允许漂浮,那么你就会问一个不同的问题。 – Skilldrick 2010-03-14 23:15:59

+0

它应该为“ab12xx34”做些什么? – user187291 2010-03-14 23:16:22

+1

包括'十六进制','八进制','二进制','浮动','整数'?我们需要准确的描述!谢谢。 – 2010-03-14 23:19:43

回答

7
var str = "something 123 foo 432"; 

// Replace all non-digits: 
str = str.replace(/\D/g, ''); 

alert(str); // alerts "123432" 

在回答你编辑的问题,从一个字符串提取一串数字可以是简单的,这取决于你是否要定位的字符串,或者如果你的特定区域只需要提取第一个出现的数字字符串。尝试:

var url = "http://www.foo.com/something/1234/somethingelse"; 
var digitMatch = url.match(/\d+/); // matches one or more digits 
alert(digitMatch[0]); // alerts "1234" 

// or: 
var url = "http://x/y/1234/z/456/v/890"; 
var digitMatch = url.match(/\d+/g); // matches one or more digits [global search] 
digitMatch; // => ['1234', '456', '890'] 
+0

我很惊讶没有其他答案使用数字速记。 – 2010-03-14 23:20:51

+0

@Damien:我们应该有什么理由? :) – Sampson 2010-03-14 23:22:14

+0

我编辑了我的问题给更多的细节 – SLoret 2010-03-14 23:26:21

1

这仅仅是整数:

[0-9]+ 

+意味着匹配1个或多个,并且[0-9]是指从范围0匹配任何字符9

0

只需定义一个需要值为数字的字符类。

/[^0-9]/g // matches anything that is NOT 0-9 (only numbers will remain) 
+0

这不是一个否定的角色类吗? – Skilldrick 2010-03-14 23:18:34

+0

@Skilldrick - 在线试用http://www.gskinner.com/RegExr/ – Sampson 2010-03-14 23:19:57

+0

哦,你没有用数字代替数字,我在评论前没有得到。 – Skilldrick 2010-03-14 23:21:03

1
uri = "http://www.foo.com/something/1234/somethingelse"; 
alert(uri.replace(/.+?\/(\d+)\/.+/, "$1")) 
+0

'uri.replace'?为什么? – 2010-03-14 23:54:16

+0

为什么?...... – user187291 2010-03-15 00:54:32

相关问题