Javascript regexObj.exec()表示TypeError:pattern.exec不是函数 [英] Javascript regexObj.exec() says TypeError: pattern.exec is not a function

查看:54
本文介绍了Javascript regexObj.exec()表示TypeError:pattern.exec不是函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在 javascript 中使用正则表达式从img标签中提取图像名称.我的问题是 console.log()引发异常: TypeError:pattern.exec不是函数.

I want to extract image name from img tag with regex in javascript. My problem is that console.log() throws Exception: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 文字:

Creates a string. A string has no method exec. You meant a RegExp literal:

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

我想您可能会在这里使用 RegExp.test 方法,如果您所需要的只是确认 src 符合给定的模式:

I suppose you might as wel use the RegExp.test method here, if all you need is confirmation that src complies to the given pattern:

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

如果您需要一个 matched 值,请使用 RegExp.match :

If you need a matched value, use 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不是函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆