Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式没有解析出我的图像url_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式没有解析出我的图像url

Javascript 正则表达式没有解析出我的图像url,javascript,regex,Javascript,Regex,我的代码似乎为我的图像url返回空值。我想得到的只是链接,但它似乎不工作 这是我的密码: var image_url = jQuery('#bgImgWrap').css('background'), image; // Remove url() or in case of Chrome url("") image_url = image_url.match(/^url\("?(.+?)"?\)$/); 以下是在声明图像url后它立即返回的内容: Image: rgb(255, 255, 2

我的代码似乎为我的图像url返回空值。我想得到的只是链接,但它似乎不工作

这是我的密码:

var image_url = jQuery('#bgImgWrap').css('background'), image;

// Remove url() or in case of Chrome url("")
image_url = image_url.match(/^url\("?(.+?)"?\)$/);
以下是在声明图像url后它立即返回的内容:

Image: rgb(255, 255, 255) 
 url(http://localhost:8000/mysite/images/Our_Services2.jpg) 
no-repeat scroll 0% 0% / cover padding-box border-box 
以下是使用我的正则表达式后返回的内容:

Image: null

我对正则表达式不是很在行,但我想知道是否有人能帮我获得我需要的正确背景图像url?谢谢大家!

正则表达式中的
^
$
使其无法匹配。这些元字符分别告诉正则表达式引擎从开始到结束进行匹配。但您的url并没有锚定在开头或结尾。正确的正则表达式应该是

/url\([^)]+\)/
另请注意,
.match
将返回匹配文本的数组。因此,您需要通过索引访问它们

image_url = image_url.match(/url\([^)]+\)/)[0];

我认为这个问题与正则表达式中的
^
$
有关。你正在测试一个长的几行字符串,中间有你的查询,所以你可能想删除那些。

如果您确实希望确保结果在自己的行中,请在
^
之后和
$
之前添加
\s*
,这样您就可以考虑一些空白。(
\s
是空白,
*
表示0-any)。您还需要在最后一个
/
之后添加一个
m
,以指定正则表达式应将这些字符计为“开始/结束行”,而不是“开始/结束字符串”

因此,我相信最终的正则表达式是:

/^\s*url\(("?(.+?)"?\)\s*$/m

一般来说,在编写正则表达式时,“activetester”工具往往会帮助我,在示例数据中不断突出显示正则表达式将匹配的内容。我使用的是Regexpal。com@MikeSamuel事实上,不,根据后面的?s,这似乎是可选的。@Katana314,说得好。