我有一个textarea,有很多行,看起来像:
#1=stuff
#2=more stuff
...
#123=even more stuff
...
Run Code Online (Sandbox Code Playgroud)
我正在使用正则表达式找到#num = pattern(/ ^#[0-9]*= /),我想让它们像锚标签一样
<a href='#123='>#123=</a>
Run Code Online (Sandbox Code Playgroud)
但它不会像我想象的那样起作用.
"#2=".replace(/^#[0-9]*=/,"<a href='$1'>$1</a>")
Run Code Online (Sandbox Code Playgroud)
结果:
<a href='$1'>$1</a>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
您忘记了捕获组或引用第0组,$&并且您只处理初始数字,因为您正在使用字符串锚点的开头(您需要删除它以匹配所有它们,或者如果您想要使用多行标记匹配行的开头):
/^#[0-9]*=/m
Run Code Online (Sandbox Code Playgroud)
替换为$&.
见演示
结果:
<a href='#1='>#1=</a>stuff
<a href='#2='>#2=</a>more stuff
...
<a href='#123='>#123=</a>even more stuff
Run Code Online (Sandbox Code Playgroud)
请注意,只有在设置了捕获组时才能评估替换字符串中的反向引用,否则它们将被替换为替换中的文字字符串.