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

时间:2014-08-08 07:39:40

标签: javascript regex

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

var text = '<script src="scripts/044c7c5e.vendor.js"></script><script src="scripts/fa9f85fb.scripts.js"></script>'

我想检索第二个脚本名称,即 fa9f85fb.scripts 。如何使用javascript正则表达式实现这一目标?

我写的是这样的:

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

但它返回整个字符串。

2 个答案:

答案 0 :(得分:4)

你的图案抓取有点偏; [(.*?)]应该只是(.*?)

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

将是整个正则表达式,无需调用RegExp类构造函数。匹配的字符串存储在索引0中。然后,从索引1开始存储各个段。

text.match( /<script src="scripts\/(.*?)\.scripts\.js"><\/script>/g )[1]

答案 1 :(得分:1)

试试/\w+.scripts(?=.js)/

参考:https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions

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