RegExp帮助:如何找到具有特定字符的字符匹配?

时间:2011-09-17 16:35:51

标签: javascript regex

我实际上试图删除小函数语句中的每个空格,如果单词“function”或“return”在它之前。这是我尝试但无济于事的原因:

function hi() {
    return "Hello";
}
hi.toString().replace(/\b\s+?=(return|function)/g, '');

3 个答案:

答案 0 :(得分:3)

javascript正则表达式中没有后悔,但这应该可以解决问题:

hi.toString().replace(/(return|function)?\s/g, function(match) {
    if (match.length > 1) return match;
    else return '';
});

这匹配单个空格,最后是 function return

如果匹配是单个字符,我们将其替换为空字符串。否则,我们不会替换它。

在此处试试:http://jsfiddle.net/ebY5w/2/

答案 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吗?