是否可以在没有注释(单行和多行)的情况下获取ace编辑器实例的值?注释由span类'ace_comment'标识,但我发现提取数据的唯一函数是getValue()。
简单示例:
console.log("Hello World") //This is a comment.
我得到了什么: 输出:'console.log(“Hello World”)//这是一个评论。'
我想要的: 输出:'console.log(“Hello World”)'
扩展示例(多行+'//'和'/ * * /'注释):
* /这是 评论* / console.log(“这不是评论”)//再次评论
答案 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。通过使用正则表达式基本上做同样的事情。好看!