JavaScript正则表达式包含,但不包含';不完全匹配
我有一个电影名称列表和2010年至2020年期间的正则表达式。过滤列表时,正则表达式与包含搜索模式的字符串不匹配。如何检查字符串是否包含regex,但与它不完全匹配JavaScript正则表达式包含,但不包含';不完全匹配,javascript,regex,Javascript,Regex,我有一个电影名称列表和2010年至2020年期间的正则表达式。过滤列表时,正则表达式与包含搜索模式的字符串不匹配。如何检查字符串是否包含regex,但与它不完全匹配 2010年和2020年之间的施工年份; const MOVIE=[《某部电影(2013)》,《某部其他电影(2010)》; MOVIE.filter((电影)=>{ 从2010年到2020年之间的年份。测试(电影)//全部为假 }) 从正则表达式中删除。包含这两个元素意味着字符串从头到尾都应该有模式,而不仅仅是包含它 2010年和
2010年和2020年之间的施工年份;
const MOVIE=[《某部电影(2013)》,《某部其他电影(2010)》;
MOVIE.filter((电影)=>{
从2010年到2020年之间的年份。测试(电影)//全部为假
})
从正则表达式中删除。包含这两个元素意味着字符串从头到尾都应该有模式,而不仅仅是包含它
2010年和2020年之间的常数年/20(?:1\d | 20)/;
const MOVIE=[《某部电影(2013)》,《某部其他电影(2010)》;
const result=MOVIE.filter((MOVIE)=>
从2010年到2020年之间的年份。REGEX.test(movie)//全部为假
);
控制台日志(结果)代码>您尝试的模式(20\d | 201\d | 2020)
也将匹配200或209
2010年至2020年的范围可通过以下方式匹配:
\b20(?:1[0-9]|20)\b
您可以使用单词边界\b
作为锚定^
和$
断言字符串的开头和结尾,而不是使用锚定
如果在代码中省略大括号,则不必使用return
2010年和2020年之间的施工年数/b20(?:1[0-9]| 20)\b/;
const MOVIE=[《某部电影(2013)》,《某部其他电影(2010)》;
console.log(MOVIE.filter((MOVIE)=>2010年和2020年之间的年份(REGEX.test(MOVIE))代码>