Regex过滤掉某些字符

Regex to filter out certain characters

本文关键字:字符 过滤 Regex      更新时间:2023-09-26

如果提供一个随机字符串,那么regex字符串会是什么样子呢?

"u23ntfb23nnfj3mimowmndnwm8"

,我想过滤掉某些字符,如2,b, j, d, g, k和8?

在这种情况下,函数将返回'2bjd8'

网上有很多文献,但没有一个是开门见山的。创建一个正则表达式来过滤字符串应该不会太难,对吧?

p。这不是家庭作业,但我对愚蠢的朋克很酷

您需要首先创建一个正则表达式,然后在您的string上执行它。

这就是你需要的:

var str = "u23ntfb23nnfj3mimowmndnwm8";
var re = /[2bjd8]+/g;
alert((str.match(re) || []).join(''));

要获得所有的匹配使用String.prototype.match()与您的Regex。

它将在输出中给出以下匹配项:

2 b2 j d 8

您可以使用字符类来定义字符。

使用match()方法分析字符串,然后过滤掉重复项。

function filterbychr(str) {
  var regex = /[28bdgjk]/g
  return str.match(regex).filter(function(m,i,self) {
    return i == self.indexOf(m)
  }).join('')
}
var result = filterbychr('u23ntfb23nnfj3mimowmndnwm8') //=> "2bjd8"