我想使用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);
});
最佳答案
var pattern = "/\/([A-Z0-9_-]{1,}\.(?:png|jpg|gif|jpeg))/ig";
创建一个字符串。字符串没有方法 exec
。您指的是 RegExp
文字:
var pattern = /\/([A-Z0-9_-]{1,}\.(?:png|jpg|gif|jpeg))/ig;
如果您需要的只是确认 src
符合给定的模式,我想您不妨在这里使用 RegExp.test
方法:
var result = /\/([A-Z0-9_-]{1,}\.(?:png|jpg|gif|jpeg))/ig.test(src);
如果您需要匹配值,请使用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'
关于Javascript regexObj.exec() 说 TypeError : pattern. exec 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20300616/