1

有代码

obj.property.style.split( /\s*;\s*/ ).forEach( function(s) {...

问题是*/模式中的 用作注释分隔符。

例如

/* comment this out please
obj.property.style.split( /\s*;\s*/ ).forEach( function(s) {..
OOPS - NOT commented out */

引用这个的习惯方式是regexp什么?

4

3 回答 3

2

*限定符是 1 的快捷方式{0,}因此:

/\s*;\s{0,}/

但是,由于这使得它比平时稍微少一些,我真的会考虑不要用注释来注释掉代码/* .. */


1 {n,}在 ECMAScript 5th Edition 中指定。但是,MDC 仅列出{n,m}.

于 2013-01-24T06:59:01.523 回答
0

规格

要指定一个空的正则表达式,请使用:/(?:)/

在你的情况下:/\s*;\s*(?:)/

?:防止括号捕获。如果您不关心捕获,则不妨使用/\s*;\s*()/

于 2013-01-24T08:12:02.407 回答
0

我假设您的代码如下所示:

obj.property.style.split( /\s*;\s*/ ).forEach(function(s) {
  ...very...
  ...long...
  ...implementation...
});

从另一个角度来看,与其对整个块进行块注释,不如将回调提取为一个独立的函数。这样,您只需要一行就forEach()可以安全地对其进行行注释。

function eachHandler(s) {
  ...very...
  ...long...
  ...implementation...
}

//you just prevented the forEach!
//obj.property.style.split( /\s*;\s*/ ).forEach(eachHandler);
于 2013-01-24T07:02:28.593 回答