我有这段代码:
_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" ), ' ');
所以问题出在我的正则表达式中,对吧?
我看不到,谁能帮我看一下吗?
谢谢!
最佳答案
Javascript 不支持lookbehinds。你不能这样写:
(?<!placeholder)
改用前瞻:
((?!placeholder).{11}|^.{0,10})
您还需要调整替换字符串,因为这会匹配您要替换的内容开始之前的额外字符。
这也是行不通的:var regex = new Regexp(/.../, "gi");
改为这样写:var regex =/.../gi;
关于javascript - 快一: What's wrong with this RegEx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7718521/