代码:
val = val.replace(/(^|[^\[])\^/g, '$1');
回复 (10)
A
引用 DevinXian@alsotang /(^|[^[])^/g 这玩意儿能匹配啥?
@DevinXian 啥都不行。^用得太风骚。
G
例子 /^ *[([^]]+)]: *<?([^\s>]+)>?(?: +"([")])? *(?:\n+|$)/.source.replace(/(^|[^[])^/g, '$1')
结果:
" *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)"
G
哦,好像转义了反斜杠,应该是这样的:
val = val.replace(/(^|[^\[])\^/g, '$1');
G
匹配以^开头的^, 或者任何非[后的^ 其中
[^\[]
让这个正则可以跨越多行匹配。
D
引用 guotie匹配以^开头的^, 或者任何非[后的^ 其中 [^\[] 让这个正则可以跨越多行匹配。
@guotie 只要没有定位,随便跨行。这个正则用途挺特殊...
J
去掉前面不为[的^
A
在我看来是无意义的。
G
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; }; }
A
无意义
D
引用 alsotang在我看来是无意义的。
@alsotang
/(^|[^[])^/g
这玩意儿能匹配啥?
参与回复
登录后即可参与回复。登录