这个正则是什么意思?
代码:
val = val.replace(/(^|[^\[])\^/g, '$1');
10 回复
在我看来是无意义的。
function replace(regex, opt) { regex = regex.source; opt = opt || ‘’; return function self(name, val) { if (!name) return new RegExp(regex, opt); val = val.source || val; val = val.replace(/(^|[^[])^/g, ‘$1’); regex = regex.replace(name, val); return self; }; }
无意义
@DevinXian 啥都不行。^
用得太风骚。
例子 /^ *[([^]]+)]: *<?([^\s>]+)>?(?: +"([")])? *(?:\n+|$)/.source.replace(/(^|[^[])^/g, ‘$1’)
结果:
" *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)"
哦,好像转义了反斜杠,应该是这样的:
val = val.replace(/(^|[^\[])\^/g, '$1');
匹配以^开头的^, 或者任何非[后的^ 其中
[^\[]
让这个正则可以跨越多行匹配。
@guotie 只要没有定位,随便跨行。这个正则用途挺特殊…
去掉前面不为[的^