Javascript 正则表达式捕获具有特定开头的整个单词

Javascript 正则表达式捕获具有特定开头的整个单词,javascript,jquery,regex,syntax,Javascript,Jquery,Regex,Syntax,我需要捕获一个作为附加整数传递给CSS类的数字。我的正则表达式很弱,我想做的很简单。我以为“否定词边界”是我想要的标志,但我想我错了 string = "foo bar-15"; var theInteger = string.replace('/bar\-\B', ''); // expected result = 15 试试这个: var theInteger = string.match(/\d+/g).join('') 试试这个: var theInteger = string.ma

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

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

var theInteger = string.match(/\d+/g).join('')
试试这个:

var theInteger = string.match(/\d+/g).join('')

使用概述的捕获组:


然后,您可以在需要使用它的任何位置执行
if(integer)

使用捕获组,如下所述:


然后,您可以在需要的任何地方使用
if(integer)

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

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


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

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


不,我想成为CSS中引入的其他基于整数的类的未来证明。匹配“bar-”字符并删除它们以获得整数是必要的。不,我想成为CSS中引入的其他基于整数的类的未来证明。匹配“bar-”字符并删除它们以获得整数是必要的。这里的问题是,如果没有尾随数字,
match
返回
null
,尝试访问
null[1]
将抛出错误。最好先调用
match
,然后在继续之前检查结果(参见我的答案)。更漂亮的是
theInteger=str.match(regex)?RegExp.$1:null
@SeanKinsey让我们开始胡闹吧。如果
null
是正常结果,则
integer=str.match(regex)和&RegExp.$1是最漂亮的(到目前为止)。@RobG,我当然不喜欢将&&运算符作为条件运算符使用。嘿,Crockford说它可以作为条件运算符,所以这给了我全权委托权,不是吗?;-)这里的问题是,如果没有尾随数字,
match
返回
null
,尝试访问
null[1]
将抛出错误。最好先调用
match
,然后在继续之前检查结果(参见我的答案)。更漂亮的是
theInteger=str.match(regex)?RegExp.$1:null
@SeanKinsey让我们开始胡闹吧。如果
null
是正常结果,则
integer=str.match(regex)和&RegExp.$1是最漂亮的(到目前为止)。@RobG,我当然不喜欢将&&运算符作为条件运算符使用。嘿,Crockford说它可以作为条件运算符,所以这给了我全权委托权,不是吗?;-)
var m = 'foo bar-15'.match(/\d+$/);
var num = m? m[0] : '';