我实际上试图删除小函数语句中的每个空格,如果单词“function”或“return”在它之前。这是我尝试但无济于事的原因:
function hi() {
return "Hello";
}
hi.toString().replace(/\b\s+?=(return|function)/g, '');
答案 0 :(得分:3)
javascript正则表达式中没有后悔,但这应该可以解决问题:
hi.toString().replace(/(return|function)?\s/g, function(match) {
if (match.length > 1) return match;
else return '';
});
这匹配单个空格,最后是 function 或 return 。
如果匹配是单个字符,我们将其替换为空字符串。否则,我们不会替换它。
答案 1 :(得分:2)
嗯,我有一个非常有趣的解决方案。
// Helper method reverse
String.prototype.reverse = function() {
return this.split('').reverse().join('');
};
hi.toString().reverse().replace(/(\s+(?!nruter|noitcnuf))/g, '').reverse();
在Javascript中我们不能使用负向lookbehind,但我们可以反转字符串并使用负向前瞻,然后反向字符串返回! 对于你的功能,它将给出:
function hi(){return "Hello";}
答案 2 :(得分:0)
您检查了lookaround syntax吗?