Javascript regexObj.exec()表示TypeError:pattern.exec不是函数

Ram*_*min 5 javascript regex url jquery

我想在javascript中使用正则表达式从img标签中提取图像名称.我的问题是console.log()抛出异常:TypeError: pattern.exec is not a function.

JS:

$("label.btn-danger").on('click',function(e){
    e.preventDefault();
    var src = $(this).parents("label").find("img").attr("src");
    var pattern = "/\/([A-Z0-9_-]{1,}\.(?:png|jpg|gif|jpeg))/ig";
    var result = pattern.exec(src)
    console.log(result);
});
Run Code Online (Sandbox Code Playgroud)

Koo*_*Inc 9

var pattern = "/\/([A-Z0-9_-]{1,}\.(?:png|jpg|gif|jpeg))/ig";
Run Code Online (Sandbox Code Playgroud)

创建一个字符串.字符串没有方法exec.你的意思是RegExp文字:

var pattern = /\/([A-Z0-9_-]{1,}\.(?:png|jpg|gif|jpeg))/ig;
Run Code Online (Sandbox Code Playgroud)

我想你也可以使用RegExp.test这里的方法,如果您需要的是src符合给定模式的确认:

var result = /\/([A-Z0-9_-]{1,}\.(?:png|jpg|gif|jpeg))/ig.test(src);
Run Code Online (Sandbox Code Playgroud)

如果您需要匹配值,请使用RegExp.match:

var result = src.match(/\/([A-Z0-9_-]{1,}\.(?:png|jpg|gif|jpeg))/ig);
// let src be '../images/someimage.png'
// then result[0] = '/someimage.png'
Run Code Online (Sandbox Code Playgroud)