jQuery/RegEx - Return 除最后一个数字外的所有数字?

jQuery/RegEx - Return all but last number?

我有一个字符串如下:

Some:7 Stuff " x 3 "

我有以下正则表达式:

/(\d+)(?!.*\d)/g

它正确地从字符串中抓取 3,但我需要它抓取 其他所有内容,这样我才能 .replace() 它。我基本上需要它的反面,但我该怎么做呢?

我只想在 运行.replace() 之后保留 3。目前它删除了 3.

编辑:相关代码here

这应该符合您的期望:

var str = 'Some:7 Stuff " x 3 "';
console.log(str.replace(/^.*?(\d+)[^\d]*$/, ''));

使用正则表达式替换:

'Some:7 Stuff " x 3 "'.replace(/(\d+)(?!.*\d)/g, "NEW_VALUE"); 
 // gets "Some:7 Stuff " x NEW_VALUE ""

你为什么不尝试 match 而不是替换?

'Some:7 Stuff " x 3 "'.match(/(\d+)(?=[^\d]*$)/).pop(); //3

我不完全确定正则表达式是否在所有情况下都能满足您的需求,因为我不知道您的需求,但这只是为了这个例子。

如果最后一个数字真的是您想要保留的唯一内容,我认为它更像是从字符串中获取内容而不是替换。