2

我在 Nodejs 中有一个简短的 html 文件作为字符串加载。

<html>
<head>
    <title>NodeJS</title>
    <link href="/style/application.css" rel="stylesheet" type="text/css">
    <script type="text/javascript" src="/scripts/script.js"></script>
    <link rel="shortcut icon" href="/favicon.ico">
  </head>
<body>
<center>
<h1><a href="#"><% title %></a></h1><br>
</center>
</body>
</html>

我需要获取 和 之间的每个字符串的<%数组%>。在这种情况下只有标题。

尝试了一些javascript字符串函数和正则表达式,但找不到任何东西......

也许找到所有位置<% %>并以编程方式切割字符串?

4

2 回答 2

2

真正的正则表达式可以为您解决问题:

var str = document.getElementById('template').innerHTML,
    re = /<%\s*(.*?)\s*%>/g,
    matches,
    results = [];

while((matches = re.exec(str)) !== null) {
    results.push(matches[1]);
}

console.log(results);

​</p>

演示

于 2012-09-22T22:54:59.090 回答
1

如果您调用.split("%")有问题的字符串,那么只要您%在页面上没有任何实例,则返回的数组中的每个奇数索引都应该包含您想要的字符串。

另一种做事的方法是首先调用string.split("<%"),然后调用string.split("%>")奇数索引,如果你碰巧有实例,其中%是页面中使用的字符。

于 2012-09-22T22:42:01.707 回答