Javascript regexObj.exec()表示TypeError:pattern.exec不是函数
我想在javascript中使用regex从img标记中提取图像名称。我的问题是Javascript regexObj.exec()表示TypeError:pattern.exec不是函数,javascript,jquery,regex,url,Javascript,Jquery,Regex,Url,我想在javascript中使用regex从img标记中提取图像名称。我的问题是console.log()抛出异常:TypeError:pattern.exec不是函数 JS: $("label.btn-danger").on('click',function(e){ e.preventDefault(); var src = $(this).parents("label").find("img").attr("src"); var pattern = "/\/([A-Z
console.log()
抛出异常:TypeError:pattern.exec不是函数
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);
});
创建一个字符串。字符串没有方法exec
。您指的是RegExp
literal:
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'
删除引号,现在您只有一个字符串?var pattern=/\/([a-Z0-9\]{1,}\(?:png | jpg | gif | jpeg))/ig代码>谢谢,还有一个问题:这将返回一个包含两个索引的数组?是的[0]
元素将是完全匹配的输入,[1]
将是第一个匹配的组。请尝试将.attr(“src”)
更改为prop(“src”)
,看看发生了什么我无法提取带有结果[1]的图像名称。我该怎么办?
var result = src.match(/\/([A-Z0-9_-]{1,}\.(?:png|jpg|gif|jpeg))/ig);
// let src be '../images/someimage.png'
// then result[0] = '/someimage.png'