Javascript 用于过滤某些字符的正则表达式
如果向您提供一个随机字符串,例如: “u23ntfb23nnfj3mimowmndnwm8” 我想过滤掉某些字符,比如2,b,j,d,g,k和8 因此,在本例中,函数将返回Javascript 用于过滤某些字符的正则表达式,javascript,regex,Javascript,Regex,如果向您提供一个随机字符串,例如: “u23ntfb23nnfj3mimowmndnwm8” 我想过滤掉某些字符,比如2,b,j,d,g,k和8 因此,在本例中,函数将返回'2bjd8' 互联网上有很多文献,但没有一篇是直截了当的。创建一个正则表达式来过滤字符串应该不会太难吧 注:这不是家庭作业,但我对愚蠢的朋克很酷,你需要先创建一个正则表达式,然后在你的字符串上执行它 这就是您需要的: var str=“u23ntfb23nnfj3mimowmndnwm8”; var re=/[2bjd8]
'2bjd8'
互联网上有很多文献,但没有一篇是直截了当的。创建一个正则表达式来过滤字符串应该不会太难吧
注:这不是家庭作业,但我对愚蠢的朋克很酷,你需要先创建一个正则表达式,然后在你的
字符串上执行它
这就是您需要的:
var str=“u23ntfb23nnfj3mimowmndnwm8”;
var re=/[2bjd8]+/g;
警报((str.match(re)| |[])。加入(“”)代码>您可以使用字符类来定义字符
使用该方法分析字符串,然后过滤掉重复项
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"
非常感谢,让我运行一些testsOutput给我“2”。对不起,我的第一句话,我看错了问题。我认为OP想要排除字符集,而不仅仅包括字符集。如果他想要一个包含所有匹配项的数组,他应该应用str.match(re)
,也许可以使用.join(“”)
将所有匹配项连接成一个字符串。这就是他对函数的期望:他应该应用str.match(re.join)(“”)
Yeah.match()
似乎是一个不错的选择。就像上面说的那样,它会删除这些字母,我们只需要使用String.prototype.match()
就可以获得所有匹配项。具体来说,您希望包括(或者排除)哪些字符?问题中提供的列表是否全面?您希望给定字符只出现一次,还是全部出现?您需要将它们分隔成一个数组,还是将它们连接成一个字符串?@marcusdei为什么您认为这是正则表达式的一项好任务?我并不是说这是不可能的,但这是不必要的,而且会使代码过于复杂。@marcusdei,不客气,如果您需要我更改任何内容,请告诉我。