什么是一个好的RegEx将从字符串中删除除整数之外的所有字符?

时间:2010-03-14 23:14:32

标签: javascript regex

我是使用regexp的新手,有人可以给我一个regexp,除了javascript中的字符串中的整数外,还会删除所有内容吗?

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

由于

4 个答案:

答案 0 :(得分: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']

答案 1 :(得分:1)

这只适用于整数:

[0-9]+

+表示匹配1或更多,而[0-9]表示匹配范围09中的任何字符。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

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