0

我需要捕获一个作为附加整数传递给 CSS 类的数字。我的正则表达式很弱,我想做的很简单。我认为“负词边界”\B是我想要的标志,但我想我错了

string = "foo bar-15";
var theInteger = string.replace('/bar\-\B', ''); // expected result = 15
4

4 回答 4

3

使用此处概述的捕获组:

var str= "foo bar-15";
var regex = /bar-(\d+)/;
var theInteger = str.match(regex) ? str.match(regex)[1] : null;

然后你可以在if (theInteger)任何你需要使用它的地方做一个

于 2012-10-24T00:26:13.680 回答
1

试试这个:

var theInteger = string.match(/\d+/g).join('')
于 2012-10-24T00:21:45.763 回答
1
string = "foo bar-15";
var theInteger = /bar-(\d+)/.exec(string)[1]
theInteger // = 15
于 2012-10-24T00:25:24.187 回答
1

如果您只想要末尾的数字(一种反向 parseInt),为什么不:

var num = 'foo bar-15'.replace(/.*\D+(\d+)$/,'$1');

或者

var m = 'foo bar-15'.match(/\d+$/);
var num = m? m[0] : '';
于 2012-10-24T02:14:42.687 回答