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正则表达式以获取脚本标记之间的src url_Javascript_Regex - Fatal编程技术网

Javascript正则表达式以获取脚本标记之间的src url

Javascript正则表达式以获取脚本标记之间的src url,javascript,regex,Javascript,Regex,我想从这样一个字符串中获取脚本的名称: var text = '<script src="scripts/044c7c5e.vendor.js"></script><script src="scripts/fa9f85fb.scripts.js"></script>' var text='' 我想检索第二个脚本名,即fa9f85fb.scripts。如何使用javascript正则表达式实现这一点 我在写这样的东西: text.match(ne

我想从这样一个字符串中获取脚本的名称:

var text = '<script src="scripts/044c7c5e.vendor.js"></script><script src="scripts/fa9f85fb.scripts.js"></script>'
var text=''
我想检索第二个脚本名,即fa9f85fb.scripts。如何使用javascript正则表达式实现这一点

我在写这样的东西:

text.match(new RegExp(/<script src="scripts\/[(.*?)]\.scripts\.js"><\/script>/), 'g')[0]
text.match(新的RegExp(//),'g')[0]

但是它会返回整个字符串。

您的模式抓取有点不正确<代码>[(.*?)应改为
(.*?)
,简单地说:

/<script src="scripts\/(.*?)\.scripts\.js"><\/script>/g
尝试
/\w+.scripts(?=.js)/

参考:


你的比赛模式有点模糊。我可以简单地使用/fa9f85fb.scripts/来匹配它。

或者更好:将HTML解析为DOM并访问
src
属性。浏览器在解析HTML方面非常出色。仅供参考,
RegExp
需要一个字符串,而不是正则表达式。text.match(new RegExp(“”,'i'))[1]谢谢@FelixKling的回复,但我在grunt任务中使用了regex,所以没有在浏览器中使用HTML解析器。@ThanasisGrammatopoulos这很有效。谢谢。这就是上下文信息有用的原因。但即使是node也有HTML解析器,我从上面的注释中得到了关于我的错误的要点@hjpotter92,并使其正常工作。
text.match( /<script src="scripts\/(.*?)\.scripts\.js"><\/script>/g )[1]