【发布时间】:2011-10-01 04:43:42
【问题描述】:
我正在 javascript 中编写一个正则表达式,它在以下情况下替换空格 except:
- 一些特定的语法是在前面的空白
- 它被单引号和双引号括起来(引号内的转义引号除外)
现在,我有很大一部分工作要做。它匹配所有在空格前面没有特定语法的模式,但是,我坚持使用引号部分。
return str.replace(/(function|new|return|var)?\s/g, function($0, $1) {
return $1 ? $0 : '';
});
我已经做了很多测试,但我就是想不通。提前致谢。
【问题讨论】:
-
我很惊讶它到目前为止仍然有效。我希望您必须将关键字放在大括号中。即 ((function)|(new)|(return)|(var))。
-
请注意,这种简单的解析在一般情况下是行不通的。例如,即使您让简单的引用起作用,它仍然会在 cmets、正则表达式引用等上中断。
-
这对“被引号包围”的问题有帮助吗? stackoverflow.com/questions/366202/…
-
@phtrivier,它是 Java(JS 没有后向功能),并且(大部分)答案不处理转义。
-
如果您提供示例文本以及所需的匹配项,我相信,我们会找到一个模式。
标签: javascript regex replace quotes lookbehind