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

标签 javascript jquery regex url

我想使用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/

相关文章:

javascript - 如何使用angularjs选择随机元素?

javascript - 添加和更改类

c# - 使用正则表达式为特殊字符添加前缀

regex - 我应该使用\d 或 [0-9] 来匹配 Perl 正则表达式中的数字吗?

javascript - 什么在吃我的 cookies ?! Cookie 不会在 asmx 调用中传输

javascript - 循环中的setTimeout : callbacks happen with no delay between them

通过 onload 运行的 JavaScript 函数未按预期更新 href 属性

javascript - Angular js指令在表单中未保存数据时显示浏览器后退按钮的警报

javascript - Razor 和 Ajax : How to reload a table upon successful Ajax call?

javascript - 允许空格的表达式的正则表达式最小值最大值