JavaScript正则表达式替换 - 删除所有不是+ Number或-Number的内容

时间:2018-03-15 15:07:22

标签: javascript regex string replace

我正在寻找一种方法来获取如下字符串:

let s = '@someone hello that was awesome +5. Rock on!';

并使用正则表达式删除除第一个+-以及紧随的后续数字之外的所有内容。结果将是:

+5

其他例子:

let s = '!#$#$%#$%^%^     -3000absdf' //-3000
let s = 'you get a +1 and a -2000 for your efforts' //+1
let s = s = '+++++++++++++++17   .' //+17

2 个答案:

答案 0 :(得分:3)

不要剥离剩下的其他字符,只需在[+-]\d+上匹配(非全局)。



let a = [
  '@someone hello that was awesome +5. Rock on!', //+5
  '!#$#$%#$%^%^     -3000absdf', //-3000
  'you get a +1 and a -2000 for your efforts', //+1
  '+++++++++++++++17   .' //+17
]
var r = /[+-]\d+/

a.forEach(function(s) {
  if(r.test(s)) console.log(s.match(r)[0])
})




答案 1 :(得分:1)

全球匹配,然后检查是否匹配

var regExp = /([+-]\d+)/;

var match = regExp.exec('asdfadf +233 asdfadf -23434');
var number = match && match[0];
console.log(number);

var match = regExp.exec('asdfadf34+233jkjkjk asdfadf -23434');
var number = match && match[0];
console.log(number);

var match = regExp.exec('asdfadjkjkjk asdfadf ty3434');
var number = match && match[0];
console.log(number);