Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript正则表达式包含,但不包含';不完全匹配_Javascript_Regex - Fatal编程技术网

JavaScript正则表达式包含,但不包含';不完全匹配

JavaScript正则表达式包含,但不包含';不完全匹配,javascript,regex,Javascript,Regex,我有一个电影名称列表和2010年至2020年期间的正则表达式。过滤列表时,正则表达式与包含搜索模式的字符串不匹配。如何检查字符串是否包含regex,但与它不完全匹配 2010年和2020年之间的施工年份; const MOVIE=[《某部电影(2013)》,《某部其他电影(2010)》; MOVIE.filter((电影)=>{ 从2010年到2020年之间的年份。测试(电影)//全部为假 }) 从正则表达式中删除。包含这两个元素意味着字符串从头到尾都应该有模式,而不仅仅是包含它 2010年和

我有一个电影名称列表和2010年至2020年期间的正则表达式。过滤列表时,正则表达式与包含搜索模式的字符串不匹配。如何检查字符串是否包含regex,但与它不完全匹配

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))