很难将所有内容都放在问题的标题中,因为它的具体取决于人们想要拆分的字符串。但它是:
我有一个字符串,其中有多个脚本标签:
<script type="text/javascript" src="/javascripts/something-1.js"></script>
<script type="text/javascript" src="/javascripts/something-2.js"/>
<script type="text/javascript" src="/javascripts/something-3.js"></script>
<link rel="stylesheet" type="text/css" href="/something-1.css">
我想把这个字符串拆分成多个字符串,每个字符串包含一个脚本标签(忽略链接标签)。我就是这样做的:
var scripts = code.match(/<script.*src=.*(\/>|<\/script>)/g);
这是为了将脚本标签与结束标签匹配 />
或</script>
。然而,使用当前的正则表达式,我总是得到:
<script type="text/javascript" src="/javascripts/something-1.js"></script>
<script type="text/javascript" src="/javascripts/something-2.js"/>
作为一个字符串 - 而不是两个。
我如何正则表达式类似:
/<script.*src=( (not script not link) /> | (not link) <\/script> )/g
最佳答案
将 .*
更改为 .*?
以尽可能少地匹配而不是尽可能多地匹配。
关于javascript - 正则表达式将Javascript中的字符串拆分为多个字符串的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10307361/