Javascript 正则表达式捕获具有特定开头的整个单词
我需要捕获一个作为附加整数传递给CSS类的数字。我的正则表达式很弱,我想做的很简单。我以为“否定词边界”是我想要的标志,但我想我错了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
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] : '';