Регулярные выражения для поиска js файлов на node js
Вот код, который находит в файле все ссылки на js
скрипт и смотрит, если есть этот скрипт в папке, то ничего не нужно делать, а если нету, то заменить на ссылку. Но у меня почему-то меняются строки не так, как нужно. Помогите!
var fs = require('fs');
var fail = fs.readFileSync("test.html", {encoding:'utf-8'});
var temp = require('stream');
var path = require('path');
var a ="'" ;
var http = /((http\:\/\/)?(\w+\.)+\w+(\/[^\s]+)?(.js))/;
var adr = /(\w+(\/[^\s]+)?(.js))/g;
var i=0;
while(adr.exec(fail)){
temp=fail.match(adr)[i];
console.log(temp);
if (fs.existsSync(path.join(temp))) {console.log("Yraaa"); } else {fail = fail.replace(adr, 'httptemp')}
console.log(adr.lastIndex);
i++;
}
Обновление
Вот лог
> dima@vlzkonopatov-PK ~/WebstormProjects/openF $ nodejs zq
script1.js
91
script111.js
129
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="httptemp"></script>
<script src="script11.js"></script>
<script src="httptemp"></script>
</head>
<body>
</body>
</html>
Вот файл
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="script1.js"></script>
<script src="script11.js"></script>
<script src="script111.js"></script>
</head>
<body>
</body>
</html>
Файл html находится в папке со скриптом. script1.js
в папке нет как и script11.js
script11.js
Но когда запускаю программу он меняет
<script src="script1.js"></script> на <script src="httptemp">
<script src="script11.js"></script> не трогает вообще
<script src="script111.js"></script> на <script src="httptemp">
Источник: Stack Overflow на русском