2015-06-26 12 views
5

HTML etiketleriyle dizeleri sarmak için: Ben # num = desen bulmak için regex kullanıyorumRegex Ben benziyor hatları dolu bir textarea var

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

(/^# [0-9] * = /) ve ben onları

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

gibi çapa etiketlerini yapmak istiyorum.

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

sonucu:

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

yanlış yapıyorum?

+0

Sen desen maçı yakalayan değiliz. Herhangi bir yakalama grubunu bildirmediğiniz '/^(# [0-9] * =) /' –

+0

kullanın. –

cevap

8

Grupları yakalamayı veya $& ile 0 grubuna atıfta bulunmayı unutursunuz ve yalnızca başlangıç ​​numarasını tutuyorsunuz, çünkü bir dize bağlantısı başlatıyorsunuz (tümünü eşleşecek şekilde kaldırmanız ya da bir multilin kullanmanız gerekiyor)

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

$& ile değiştirin: bayrağı hatları) başlangıcını eşleştirmek istiyorum. aksi takdirde yerine değişmez dize olarak kabul edilir,

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

Sadece yakalayan grupları set varken yedek dizede geribaşvurularla sadece değerlendirilebilir unutmayın:

demo

Sonuçları gör. için

+0

Hile yaptık! Çok teşekkürler. – mottosson

+0

Yardım sevindim, harika bir gün geçir! –

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

sarma grubu()