如何在没有评论的情况下从ACE编辑器中获取价值?

时间:2016-04-28 09:22:32

标签: javascript editor ace-editor

是否可以在没有注释(单行和多行)的情况下获取ace编辑器实例的值?注释由span类'ace_comment'标识,但我发现提取数据的唯一函数是getValue()。

简单示例:

console.log("Hello World") //This is a comment.

我得到了什么:   输出:'console.log(“Hello World”)//这是一个评论。'

我想要的:   输出:'console.log(“Hello World”)'

扩展示例(多行+'//'和'/ * * /'注释):

* /这是 评论* / console.log(“这不是评论”)//再次评论

2 个答案:

答案 0 :(得分:3)

您可以使用正则表达式删除评论:

var string = 'console.log("Hello World") //This is a comment. \n' + 
             'hello("foo"); /* This is also a comment. */';
string = string.replace(/\s*\/\/.*\n/g, '\n').replace(/\s*\/\*[\s\S]*?\*\//g, '');
document.body.innerHTML = '<pre>' + string + '</pre>';

答案 1 :(得分:0)

更简单的解决方案。要像这样修剪//评论

    var str = 'console.log("HelloWorld")//This is a comment';
        str = str.split('//');

    //Just to print out
    document.body.innerHTML = '<pre>You provide > '+ str[0]+'//'+str[1] +'</pre><pre>Output > ' + str[0] + '</pre>';

通过执行此操作,您将整个字符串拆分为'//'split,返回一个将具有[0] = console.log('HelloWorld');和[1] ='这样评论'。这是我能想到的最简单的解决方案。 jcubic。通过使用正则表达式基本上做同样的事情。好看!