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

How do I get value from ACE editor without comments?

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

简单示例:

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

我得到的: 输出:'console.log("Hello World") //This is a comment.'

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

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

*/ 这是 评论 */ console.log("this is not a comment") // 再次评论

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

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>';

一个更简单的解决方案。只是 trim //这样的评论

    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>';

通过这样做,您将通过 '//' 拆分整个字符串 returns 一个数组,该数组将具有 [0] = console.log('HelloWorld'); [1] = 'Comment like this'。这是我能想到的最简单的解决方案。立方体。基本上是通过使用正则表达式来做同样的事情。好看!