我有这段代码:
_regex = /((?<!placeholder)\w+(?:\s*=\s*(?:"[^"]*"|'[^']*')))/;
imgTag = imgTag.replaceAll(_regex, ' ');
还试过这个而不是:
imgTag = imgTag.replace( new RegExp( /((?<!placeholder)\w+(?:\s*=\s*(?:"[^"]*"|'[^']*')))/, "gi" ), ' ');
但是我的代码永远不会通过这个行:
_regex = /((?<!placeholder)\w+(?:\s*=\s*(?:"[^"]*"|'[^']*')))/;
或此行:
imgTag = imgTag.replace( new RegExp( /((?<!placeholder)\w+(?:\s*=\s*(?:"[^"]*"|'[^']*')))/, "gi" ), ' ');
问题出在我的RegEx中,对吧?
我看不到它,有人可以请光吗?
谢谢!
答案 0 :(得分:2)
Javascript不支持lookbehinds。你不能写这个:
(?<!placeholder)
改为使用前瞻:
((?!placeholder).{11}|^.{0,10})
您还需要调整替换字符串,因为这会在您要替换的内容之前匹配额外的字符。
这也不起作用:var regex = new Regexp(/.../, "gi");
改为写下:var regex = /.../gi;
答案 1 :(得分:2)
JavaScript不支持后视模式。 (那是(?< pattern )
部分。)