简体   繁体   English

使用 Javascript 的正则表达式过滤数组

[英]Filter array with regex using Javascript

I am not very well versed with coding.我不是很精通编码。 I have a set of strings in an array and I am trying to filter them out using regex but it's not working for me.我在数组中有一组字符串,我正在尝试使用正则表达式将它们过滤掉,但这对我不起作用。 I want my result array to return any string containing _ number like _0, _01, _000我希望我的结果数组返回任何包含 _数字的字符串,例如 _0、_01、_000

and the filter that I am using is我使用的过滤器是

 var myArray = ["bedroom_01", "bedroom_02", "bedroom", "bathroom_01"]; var result = myArray.filter(name => name.includes("/_\d+/g")); console.log(result);

The above code is returning me a blank array.上面的代码返回给我一个空白数组。 Please let me know what am I doing wrong?请让我知道我做错了什么?

You need RegExp#test with a regex literal:您需要带有正则表达式文字的RegExp#test

 var myArray = ["bedroom_01", "bedroom_02", "bedroom", "bathroom_01"]; console.log( myArray.filter(name => /_\d+/.test(name)) )

If you need to check if the array item ends with _ + digits, use /_\d+$/ .如果您需要检查数组项是否以_ + 数字结尾,请使用/_\d+$/

What you are passing to includes is a string not a regexp and includes takes a string not a regexp instead you can use the match method你传递给包含的是一个字符串而不是一个正则表达式,并且包含一个字符串而不是一个正则表达式,而不是你可以使用match方法

 var myArray = ["bedroom_01", "bedroom_02", "bedroom", "bathroom_01"]; var result = myArray.filter(name => name.match(/_\d+/)); console.log(result);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM