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
我不完全确定正则表达式是否在所有情况下都能满足您的需求,因为我不知道您的需求,但这只是为了这个例子。
如果最后一个数字真的是您想要保留的唯一内容,我认为它更像是从字符串中获取内容而不是替换。
我有一个字符串如下:
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
我不完全确定正则表达式是否在所有情况下都能满足您的需求,因为我不知道您的需求,但这只是为了这个例子。
如果最后一个数字真的是您想要保留的唯一内容,我认为它更像是从字符串中获取内容而不是替换。