jQuery / RegEx - 返回除最后一个号码以外的所有号码?

时间:2015-01-13 23:34:50

标签: jquery regex google-chrome

我有一个字符串如下:

Some:7 Stuff " x 3 "

我有以下RegEx:

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

它正确地抓住了字符串中的3,但是我需要它来抓取其他所有内容所以我可以.replace()它。我基本上需要它的反转,但我该怎么做呢?

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

编辑:相关代码here

3 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

这应符合您的期望:

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

答案 2 :(得分:0)

使用正则表达式替换:

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