是否可以使用正则表达式的任何子结果来构成整个正则表达式,请考虑以下代码段:
var ret = "{hello} {world}";
ret = ret.replace(/(^|[^{}])(\{|\})([^{}]|$)/g, '$1$2$2$3');
ret; // {{hello}} {{world}}
但是当我把}{
上面的正则表达式放在一起时会失败,这也是有道理的,因为我正在测试字符串的任何一个}{
或开头,然后是字符串的一个,{}
然后又{}
是字符串的一个或结尾:
var ret = "{hello}{world}";
ret = ret.replace(/(^|[^{}])(\{|\})([^{}]|$)/g, '$1$2$2$3');
ret; // {{hello}{world}}
是否可以使用第一个结果集制作第二个,然后再次制作第三个:
/(^|[^{}])($1)([^{}]|$)/g, '$1$2$2$3'
// $1 - or something similarly
我很清楚我可以使用乘法·replace
调用,但只要有一个就很酷了。
谢谢
不要考虑代码的可读性。