2016-04-08 16 views
0

Aşağıdaki karakteri, eşleştirilen karakterden (reklam) sonra yazdırmak istiyorum ancak nasıl argüman olarak çağırılacağını bilmiyorum, herhangi bir yardım?regex'ten sonraki son karakteri yazdır

$(document).ready(function(){ 
 

 
$("#ta_1").keyup(function(event) { 
 
    
 
    var text2 = $(this).val(); 
 
    
 
    text2 = text2.replace(/ad(?=a|ı|o|u|R|T|S|B|q|Y|L|Ğ|I|D)/g, "D$2"); 
 
    
 
    $("#ta_1").val(text2); 
 
    
 
}); 
 
});
<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
<title></title> 
 
<meta charset="utf-8" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
</head> 
 
<body> 
 
\t \t \t 
 
<textarea id="ta_1" rows="5" cols="28" ></textarea> 
 

 
</body> 
 
</html>

+1

İstediğiniz şeyle derinliklere inebilir misiniz? Ne yapmaya çalışıyorsun (spesifik olmalısın) ve ne çalışmıyor? – kirkpatt

+1

bir örnek de yararlı olacaktır. "mavi" .replace (/ ue /, "arg") # => "blarg". yazdırmak istersiniz, 'blarg', arg', 'ue' vb – PhilVarg

+0

@kirkpatt evet tabiki bir örnek olarak, 1) yazılan dizge: ada, hedef dizgisi (ne isterim): Da ,,, 2) yazılmıştır dize: adS, hedef dizesi: DS ,,, vs vs .. – pinug

cevap

1

Bunu yapmak için birkaç yolu vardır, ve kod bunlardan biri oldukça yakındı; Sadece $1'u kaldırmanız gerekiyordu. Başka bir çözüm, lookahead yerine capture olacaktır. ayrıca optimize etmek

"adoadR".replace(/ad(?=a|ı|o|u|R|T|S|B|q|Y|L|Ğ|I|D)/g, "D$1"); // #0: "D$1oD$1R" 
"adoadR".replace(/ad(?=a|ı|o|u|R|T|S|B|q|Y|L|Ğ|I|D)/g, "D"); // #1: "DoDR" 
"adoadR".replace(/ad(a|ı|o|u|R|T|S|B|q|Y|L|Ğ|I|D)/g, "D$1"); // #2: "DoDR" 

, ayrıca bir character class içine ardalanmasından daraltmak olmalıdır: yakalama pahalı

"adoadR".replace(/ad(?=[aıouRTSBqYLĞID])/g, "D"); // #3: "DoDR" 
"adoadR".replace(/ad([aıouRTSBqYLĞID])/g, "D$1"); // #4: "DoDR" 

beri buna ihtiyacı yoktur, çünkü ben buna karşı tavsiye ederim.

My # 3 en iyi çözümdür.

+0

Teşekkürler efendim :) – pinug

İlgili konular