使用node.js删除2个字符串之间的文本

时间:2017-05-09 18:07:08

标签: javascript node.js

我正在尝试创建一个脚本,该脚本应该从node.js文件中删除一些文本。

我有这个文件:

bla bla 
bla bla
<script>
   this text should be
   removed.
export default {
  some stuff here
}
</script>

我只想删除<script>export default {之间的所有文字。

注意:我希望同时保留<script>export default }

3 个答案:

答案 0 :(得分:2)

正则表达式效果很好

str = str.replace(/(.*\<script\>).*(export.*)/,  '$1$2');

注意: - 将文件作为字符串读取,如果它的大,则同步读取。

答案 1 :(得分:1)

简单的正则表达式匹配就足够了:

const content = `blah blah
blah blah
<script>
   this text should be
   removed.
export default {
  some stuff here
}
</script>`;

content.replace(/\<script\>([\s\S]*)export/g, '<script>export');

答案 2 :(得分:0)

var lineReader = require('readline').createInterface({
    input: require('fs').createReadStream('test_input.txt')
});

const start_marker = '<script>';
const end_marker = 'export default';
var deleteEnabled = false;

lineReader.on('line', function(line) {
    if (!deleteEnabled && line.startsWith(start_marker)) {
        console.log(line);
        deleteEnabled = true;
    } else if (deleteEnabled && line.startsWith(end_marker)) {
        deleteEnabled = false;
    }

    if (!deleteEnabled) {
        console.log(line);
    }
});

这将在命中start_marker时开始删除行,并在命中end_marker时停止删除。