繁体   English   中英

正则表达式用HTML标签包装字符串

[英]Regex to wrap strings with HTML tags

我有一个textarea,有很多行,看起来像:

#1=stuff
#2=more stuff
...
#123=even more stuff
...

我正在使用正则表达式找到#num = pattern(/ ^#[0-9] * = /),我想让它们像锚标签一样

<a href='#123='>#123=</a>

但它不会像我想象的那样起作用。

"#2=".replace(/^#[0-9]*=/,"<a href='$1'>$1</a>")

结果:

<a href='$1'>$1</a>

我究竟做错了什么?

您忘记了捕获组或使用$&引用第0组,并且您只处理初始数字,因为您正在使用字符串锚点的开头(您需要将其删除以匹配所有这些,或者如果您使用多行标记想要匹配行的开头):

/^#[0-9]*=/m

替换为$&

演示

结果:

<a href='#1='>#1=</a>stuff
<a href='#2='>#2=</a>more stuff
...
<a href='#123='>#123=</a>even more stuff

请注意,只有在设置了捕获组时才能评估替换字符串中的反向引用,否则它们将被替换为替换中的文字字符串。

"#2=".replace(/^(#[0-9]*=)/,"<a href='$1'>$1</a>")

将组换到()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM